duggy: getSelection defined - rangeCount undefined

Hi,

ich wollte mir von diesem Script den insertTable Button abschauen. Habe statt dem iframe allerdings ein div [contenteditable]. Also das Skript (function insertNodeAtSelection) angepasst:

var sel = document.getSelection();  
alert(sel); // markierter Text korrekt alertet  
alert(sel.rangeCount); // undefined (obwohl sel = "wort")  
try { var range = sel.getRangeAt(0); } catch (e) { alert(e); } // sel.getRange is not a function  

Wie kann das sein?

  1. Hi,

    Wie kann das sein?

    Kann man mit so wenig Code und ohne Kontext nicht sagen.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hallo,

      Kann man mit so wenig Code und ohne Kontext nicht sagen.

      Der Code war vollständig; die Kontextinfo hätte höchstens sein können, dass duggy Firefox 3.x oder Opera verwendet. Seit Firefox 3 gibt document.getSelection() nur einen String zurück, über den kein Zugriff auf die Selection-API und die Ranges möglich ist. Dasselbe gilt für Opera 10.51, während im Webkit window/document.getSelection gleiche Objekte zu liefern scheint.

      Mathias

  2. Hi,

    alert(sel.rangeCount); // undefined (obwohl sel = "wort")

    Vielleicht ist sel (weil sel="wort") zu sehr ein String?
    Ich würde mal anschauen, wie du zu sel kommst.

    Gruss!

  3. Hallo,

    ]var sel = document.getSelection();

    Du musst window.getSelection() verwenden, dann stehen auch rangeCount und getRangeAt() zur Verfügung.

    Btw, Scriptbeispiele, die auch mit getSelection und DOM-Ranges arbeiten:
    http://molily.de/weblog/selectionmenu-copylink

    Mathias