2010-03-03 5 views
2

J'ai un signe dans la zone de texte (pas de sélection). Je dois en faire une sélection.
Par exemple: "Ceci est un te | xt"JS élargir plage vide dans IE

var caret = document.selection.createRange(); // got empty range between "e" and "x" 
caret.moveEnd('character'); // Move endpoint one character right, now it must be "x" 
alert (caret.text); // empty !!! 

Qu'est-ce qui ne va pas?

Répondre

3

Vous n'appelez pas « MoveEnd » sur l'objet de sélection - vous l'appelez sur le TextRange (« caret »): l'édition

var caret = document.selection.createRange(); // got empty range between "e" and "x" 
caret.moveEnd('character'); // Move endpoint one character right, now it must be "x" 
caret.select(); // make the selection equal the range 
alert (caret.htmlText); 

modifier Je suis aussi ceci pour faire en sorte que la « alerte » fonctionne réellement :-)

Voici un exemple de page: http://gutfullofbeer.net/range.html

Je pense que ce genre de choses pourrait ne fonctionne que par la voie dans IE. (Confirmé qu'au moins Chrome ne fait rien avec ce code.)

+0

Désolé, c'est de ma faute, j'ai juste foiré ici avec des noms de variables. Changé. Cela ne fonctionne pas. – Qiao

+0

Essayez-le maintenant - je l'ai réparé de nouveau afin que les choses référencées dans le "alerte" fonctionne réellement. – Pointy

+0

non, il ne fonctionne toujours pas. La première sélection doit être vide, caret | . – Qiao