Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[JavaScript] - Selectie behouden na range.insertNode()

Pagina: 1
Acties:

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
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.

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. ]


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Welke WYSIWYG editor gebruik je dan? Lijkt me evident dat je dat ook ff moet melden... Want vziw gaat dit in tinyMCE gewoon goed.

日本!🎌


  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
M'n eigen fabrikaat editor.

  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Topicstarter
Uiteindelijk gelukt na een paar dagen ploeteren.
Kan wat mij betreft dus een slotje op dit topic.

  • André
  • Registratie: Maart 2002
  • Laatst online: 13-11 13:40

André

Analytics dude

Hij zakt wel weg ;)