Ist es möglich, den hervorgehobenen Text in einem Absatz einer Website abzurufen, z. B. mithilfe von jQuery?
351
Ist es möglich, den hervorgehobenen Text in einem Absatz einer Website abzurufen, z. B. mithilfe von jQuery?
Antworten:
Das Abrufen des vom Benutzer ausgewählten Textes ist relativ einfach. Durch die Einbindung von jQuery können Sie keinen Vorteil erzielen, da Sie nur die Objekte
window
und benötigendocument
.Wenn Sie an einer Implementierung interessiert sind, die sich auch mit Auswahlen in
<textarea>
und Textelementen befasst<input>
, können Sie Folgendes verwenden. Da es jetzt 2016 ist, lasse ich den Code weg, der für die IE <= 8-Unterstützung erforderlich ist, aber ich habe an vielen Stellen dafür Dinge auf SO gepostet.quelle
window.getSelection()
). Bei derdocument.selection.type
Prüfung wird geprüft, ob es sich bei der Auswahl eher um eine Textauswahl als um eine Steuerelementauswahl handelt. In IE ist eine Steuerelementauswahl eine Auswahl innerhalb eines bearbeitbaren Elements, das ein oder mehrere Elemente (z. B. Bilder und Formularsteuerelemente) mit Konturen und Ziehpunkten zur Größenänderung enthält. Wenn Sie eine.createRange()
solche Auswahl aufrufen , erhalten SieControlRange
eher eine als eineTextRange
undControlRange
haben keinetext
Eigenschaft.selectionStart
oderselectionEnd
in einem<input>
Elementtyp (wie „Zahl“) , die nicht unterstütze es (siehe zum Beispiel jsfiddle.net/6zoposby/2 ). Ich habe den Scheck auf das Vorhandensein von verlassen,selectionStart
damit der Code im IE <= 8 nicht kaputt geht. Ich gebe zu, dass der Scheck füractiveElement
jetzt wahrscheinlich übertrieben ist. Ich benutze es,slice
weil es leistungsfähiger ist (obwohl das hier nicht nützlich ist) und etwas kürzer zu tippen ist alssubstring
.Erhalten Sie hervorgehobenen Text auf folgende Weise:
und natürlich eine spezielle Behandlung für dh:
quelle
document.selection
Unterstützung in IE10 entfernt und durchwindow.getSelection
" ersetzt. Quelle: connect.microsoft.com/IE/feedback/details/795325/…Diese Lösung funktioniert, wenn Sie Chrome verwenden (andere Browser können nicht überprüft werden) und wenn sich der Text im selben DOM-Element befindet:
quelle
Verwenden Sie
window.getSelection().toString()
.Sie können mehr auf developer.mozilla.org lesen
quelle