OK, hier ist der Code, den ich habe:
function ShowSelection()
{
var textComponent = document.getElementById('Editor');
var selectedText;
if (textComponent.selectionStart !== undefined)
{ // Standards-compliant version
var startPos = textComponent.selectionStart;
var endPos = textComponent.selectionEnd;
selectedText = textComponent.value.substring(startPos, endPos);
}
else if (document.selection !== undefined)
{ // Internet Explorer version
textComponent.focus();
var sel = document.selection.createRange();
selectedText = sel.text;
}
alert("You selected: " + selectedText);
}
Das Problem ist, obwohl der Code, den ich für Internet Explorer gebe, auf vielen Seiten angegeben ist, kann ich ihn auf meiner Kopie nicht zum Laufen bringen InternetExplorer 6 auf meinem jetzigen System. Vielleicht funktioniert es für Sie, und deshalb gebe ich es.
Der Trick, nach dem Sie suchen, ist wahrscheinlich der Aufruf von .focus(), um den Fokus wieder auf das Textfeld zu geben, damit die Auswahl reaktiviert wird.
Ich habe das richtige Ergebnis (die Auswahl Inhalt) mit dem onKeyDown Veranstaltung:
document.onkeydown = function (e) { ShowSelection(); }
Der Code ist also richtig. Auch hier geht es darum, die Auswahl per Klick auf eine Schaltfläche zu erhalten … Ich suche weiter.
Mit einem mit a gezeichneten Button hatte ich keinen Erfolg li
-Tag, denn wenn wir darauf klicken, hebt der Internet Explorer die vorherige Auswahl auf. Der obige Code funktioniert mit einer einfachen input
knopf aber…
Für Opera, Firefox und Safari können Sie die folgende Funktion verwenden:
function getTextFieldSelection(textField) {
return textField.value.substring(textField.selectionStart, textField.selectionEnd);
}
Dann übergeben Sie einfach einen Verweis auf ein Textfeldelement (wie ein Textfeld oder ein Eingabeelement) an die Funktion:
alert(getTextFieldSelection(document.getElementsByTagName("textarea")[0]));
Oder, wenn Sie möchten, dass
Ich denke, Sie sollten sich die selectionstart/selectionend-Eigenschaften des Eingabefelds für Firefox und textrange im IE als Referenz ansehen: http://www.dedestruct.com/2008/03/22/howto-cross-browser-cursor-position-in-textareas/
– MatthieuGD
9. November 2008 um 9:34 Uhr