ich ein mouseup Ereignis verwenden eine Funktion auszulösen, den Text hebt und umgibt den markierten Text mit einer Spanne (Funktion von Stack-Überlauf):JS - surround behält nur Highlights auf Text etwa 20% der Highlight versucht
function highlightText(e) {
var t = window.getSelection().toString();
if (t) {
$("#mySpan").remove();
var range = window.getSelection().getRangeAt(0);
newNode = document.createElement("span");
newNode.id = 'mySpan';
range.surroundContents(newNode);
}
}
Das Hauptproblem, auf das ich stoße, ist, dass, solange surroundContents
enthalten ist, der Text nur etwa 20% der Highlight-Versuche hervorgehoben bleibt (andernfalls wird die Hervorhebung sofort ausgeblendet). Ich habe versucht, ein SetTimeout, nicht aufrufen Surround-Content für 1s. Ich habe auch versucht, die remove() -Anweisung zu entfernen, aber immer noch nicht gut.
Irgendwelche Ideen, warum das passiert?
was ist mit dem Starten der Funktion mit 'e.preventDefault();' –
Ich habe dies direkt nach und vor surroundContents Anruf, aber ohne Erfolg. –
Haben Sie versucht, "TextHighlighter" von [hier] (https://www.sitepoint.com/10-jquery-text-highlighter-plugins/) zu verwenden? – dude