document.selection.createRange()
Martin Hein
- javascript
Hallo Forum,
ich arbeite an einem Skript, in den 'document.selection.createRange()' verwendet wird, um auf den innerhalb einer Textarea selektierten Text zuzugrifen. Dabei gibt es einen Punkt, an dem das Skript
versagt ;(
---------------schnipp 1 ----------------------
var range = document.selection.reateRange();
var inner_text = range.text;
alert(inner_text);
-> funktioniert problemlos
---------------schnipp 2 ----------------------
var range = document.selection.reateRange();
var inner_text = range.text;
verarbeitung(inner_text);
function verarbeitung(parameter){alert(parameter)}
-> funktioniert auch problemlos
---------------schnipp 3 ----------------------
code_fuction = "verarbeitung";
var range = document.selection.reateRange();
var inner_text = range.text;
eval (code_function+"('"+inner_text+"')");
function verarbeitung(parameter){alert(parameter)}
-> funktioniert auch problemlos bis zu dem fall,
in dem ich mehrere zeilen über, mittels 'returntaste',
erzwungene umbrüche markiere.
weiss jemand rat ?
danke und
beste gruesse,
martin
---------------schnipp 3 ----------------------
code_fuction = "verarbeitung";
var range = document.selection.reateRange();
var inner_text = range.text;
eval (code_function+"('"+inner_text+"')");function verarbeitung(parameter){alert(parameter)}
-> funktioniert auch problemlos bis zu dem fall,
in dem ich mehrere zeilen über, mittels 'returntaste',
erzwungene umbrüche markiere.
wozu eval?
Struppi.
Hallo,
vielleicht hilft dieses Beispiel auf die Schnelle weiter ...
[code=javascript]
function my_alert(x){ alert("my_alert:\n\n"+x);}
var my_x=my_alert;
my_x("abc");
name_func="my_alert";
var my_x2=eval(name_func);
my_x2("aus eval function name ");
[/code]
aber auf eine Lösung ohne "eval" bin ich auch gespannt.
Hi,
aber auf eine Lösung ohne "eval" bin ich auch gespannt.
var my_x2=windowname_func;
Gruß, Cybaer
Hallo Cybaer.
aber auf eine Lösung ohne "eval" bin ich auch gespannt.
var my_x2=windowname_func;
Hier würde die Funktion augenblicklich ausgeführt, was sicher nicht erwünscht ist. Besser also so:
var my_x2=window[name_func]; // Referenz auf die Funktion
Und irgendwann:
my_x2();
Einen schönen Mittwoch noch.
Gruß, Mathias
thanx,
verbeuge mich ;)
beste gruesse,
martin
verbeuge mich ;)
für die schlechtere Lösung?
Na dann.
das macht das gleiche https://forum.selfhtml.org/?t=146257&m=948933 ohne die wesntlich langsamere eval Lösung.
Struppi.
Lieber Martin,
var range = document.selection.reateRange();
---------------------------------^
Heißt das bei Dir wirklich so?
Ich bin mir auch nicht ganz sicher, ob das in allen Browsern so reibungslos arbeitet, da meines Wissens document.selection nicht in allen Browsern so existiert.
Kennst Du schon diesen Artikel zum Einfügen von Text in einer Textarea an der aktuellen Cursorposition?
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hi,
Ich bin mir auch nicht ganz sicher, ob das in allen Browsern so reibungslos arbeitet, da meines Wissens document.selection nicht in allen Browsern so existiert.
Ich hätte vielleicht dazu schreiben müssen, dass es sich dabei
um ein Content Management Tool handelt, dass im Extranet liegt
und nur auf dem internet Explorer laufen muss.
beste gruesse,
Martin Hein
Ich hätte vielleicht dazu schreiben müssen, dass es sich dabei
um ein Content Management Tool handelt, dass im Extranet liegt
und nur auf dem internet Explorer laufen muss.
nö.
Trotzdem ist eval überflüssig und vermutlich auch für den Fehler verantwortlich.
Struppi.