Ik ben bezig aan een wysiwyg editor. Het idee is dat de gebruiker altijd netjes in een paragraph oid zit, dus maak ik meteen een paragraafje aan bij het starten van de editor. Nou wil ik graag op dat paragraafje focussen (de caret erin zetten), maar dat krijg ik niet voor elkaar.
Probeersel-code:
Het stukje voor firefox creëert weliswaar de goede selectie (de tekst in de paragraaf wordt geselecteerd) maar er wordt niet op gefocussed (als ik begin te typen overschrijf ik de selectie niet).
Het gecommente stukje bij IE zou volgens mij moeten werken, maar IE beweert dat de variabele range die twee functies niet ondersteunt. node.focus() doet niets, terwijl node.parentNode.focus() wel netjes de focus in de Body van de editor parkeert.
Jemand eine Ahnung?
NB: gaarne geen tips in de trant van 'ik gebruik editor x', ik wil gewoon kunnen focussen op een node.
Probeersel-code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| function placeCaretInNode(node) { if (window.getSelection) { //Gecko var sel = document.getElementById("editorframe").contentWindow.getSelection(); sel.removeAllRanges(); var range = document.createRange(); range.selectNode(node); sel.addRange(range); } else { //IE node.focus(); //document.getElementById("editorframe").contentWindow.focus(); //var range = document.selection.createRange(); //range.setStart(node,0); //range.setEnd(node,1); } } |
Het stukje voor firefox creëert weliswaar de goede selectie (de tekst in de paragraaf wordt geselecteerd) maar er wordt niet op gefocussed (als ik begin te typen overschrijf ik de selectie niet).
Het gecommente stukje bij IE zou volgens mij moeten werken, maar IE beweert dat de variabele range die twee functies niet ondersteunt. node.focus() doet niets, terwijl node.parentNode.focus() wel netjes de focus in de Body van de editor parkeert.
Jemand eine Ahnung?
NB: gaarne geen tips in de trant van 'ik gebruik editor x', ik wil gewoon kunnen focussen op een node.