getSelection gibt ein Selection-Objekt zurück. Das hat direkt keine Eigenschaft length. Du kannst aber explizit die Methode toString aufrufen, welche dir dann einen String zurückgibt, der bekanntlich eine length-Eigenschaft hat.
Besten Dank für den Hinweis ... vor allem auch langfristig hilfreich: In diese Richtung hätte ich nicht von allein nachgedacht.
Der Internet Explorer unterstützt getSelection übrigens erst auf Version 9.
document.selection.createRange().text
ist das Äquivalent zudocument.getSelection().toString()
, sofern ich mich richtig erinnere.
Das Skript ist nur für einen sehr überschaubaren Nutzerkreis, von denen Keiner MSIE nutzt ... auch danke für diesen Tipp.
Siehe meinen älteren Artikel zum Thema und die entsprechende Fähigkeitenerkennung im Script.
Interessante Texte hast Du da verlinkt, danke :-)
Ich habe nun mal das Skript entsprechend umgestellt und nun läuft leider garnix mehr :-(
var eingabe=window.getSelection().toString();
if(eingabe()!='')
{if(eingabe.length>5)
{author=eingabe;}
else{author="''"+server+"''-Autor "+eingabe;};}
else{author=server;};
üblicherweise nutze ich das Skript (bookmarklet-typisch) einzeilig:
var eingabe=window.getSelection().toString(); if(eingabe()!='') {if(eingabe.length>5) {author=eingabe;} else{author="''"+server+"''-Autor "+eingabe;};} else{author=server;};
Jetzt produziert das Skript in allen Fällen:
''Server''-Autor Server
... egal, wie lang der markierte Text ist ... sogar ohne marktierten Text kommt es zu dem gennanten Ergebnis.
Ich bin sehr erstaunt, ins Deutsche übersetzt, soll das Skript folgendes tun:
Wenn eingabe nicht-gleich leer,
dann wenn eingabe-länge größer als 5,
dann author gleich eingabe
sonst author gleich ''server''-Autor eingabe
sonst author gleich server
... und zu allem Überfluss bricht das Skript danach ab, statt weiterzulaufen und weitere Parameter abzufragen. Ich bin inzwischen völlig ratlos, denn im FireBug habe ich keine Möglichkeit gefunden ein Bookmarklet prüfen zu lassen ... er will nur in HTML eingebettetes oder von HTML nachgeladenes JavaScript ... vllt. nervt mich dieses vermeintlich klitzekleine und banal wirkende Skript so sehr damit an, dass es nicht laufen will, das ich nur noch Tomaten auf den Augen und Rauch aus den Ohren habe :-(
vllt hat ja einer hier noch eine Idee oder einen Schubser, in welche Richtung ist noch denken / forschen könnte. Das wäre echt super. Trotzdem schon mal allen, die sich bemüht haben, ein großes Dankeschön ... falls ich noch irgendwie zu einer Lösung komme, dann poste ich es natürlich hier.