Hallo!
Ik begin langzaamaan gek te worden. In mijn WYSIWYG editor wil ik graag (in Firefox) een node in een selectie invoegen ... en vervolgens de selectie behouden.
Probleem op dit moment is dat wanneer anchorNode een textnode is, dan dan sel.colapse() een foutmelding oplevert. Dus anchorNode kan wel in de selectie een textnode zijn, maar zodra je de selectie wil collapsen naar die anchorNode, dan kan het ineens niet meer???
Maar misschien ben ik wel helemaal op de verkeerde weg.
HELP!
Ik begin langzaamaan gek te worden. In mijn WYSIWYG editor wil ik graag (in Firefox) een node in een selectie invoegen ... en vervolgens de selectie behouden.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| function insertNode(node) { var sel, range; sel = window.getSelection(); if ( sel && (sel.rangeCount > 0) && (range = sel.getRangeAt(0)) ) { var anchorNode = sel.anchorNode; var anchorOffset = parseInt(sel.anchorOffset); var focusNode = sel.focusNode; var focusOffset = parseInt(sel.focusOffset); range.insertNode(node); // hierna is de huidige selectie verdwenen, dus moet nu worden hersteld: sel.collapse(anchorNode, anchorOffset); // zet focus sel.collapseToEnd(); // maak anchor hetzelfde als focus if ( anchorNode != focusNode || anchorOffset != focusOffset ) { sel.extend(focusNode, focusOffset); // zet focus op de plaats waar hij in eerste instantie al stond. } return; } } |
Probleem op dit moment is dat wanneer anchorNode een textnode is, dan dan sel.colapse() een foutmelding oplevert. Dus anchorNode kan wel in de selectie een textnode zijn, maar zodra je de selectie wil collapsen naar die anchorNode, dan kan het ineens niet meer???
Maar misschien ben ik wel helemaal op de verkeerde weg.
HELP!
[ Voor 5% gewijzigd door gvanh op 05-09-2008 13:55 . Reden: comments in code toegevoegd. ]