Auf Text Highlight Event?
Ich bin gespannt, ob jemand weiß, wie ich Sie auslösen würde, eine Funktion zu laufen, wenn/sobald der Benutzer beendet das auswählen von text auf der web-Seite? Ich möchte die Benutzer in der Lage sein, text zu markieren, und nach einer kurzen Verzögerung(oder sofort, an diesem Punkt, es spielt keine große Rolle), eine overlay-Taste erscheint in der Nähe der text, den der Benutzer klicken kann, und ich gehen wieder zurück und laufen noch mehr von meinem code, basierend auf der Auswahl. Dies ist eine Firefox-Erweiterung.
Einem ähnlichen Beispiel, das ich denken würde wie im IE, wo Sie können text auswählen und dann bringt es die "web-Beschleuniger". Ich bin mir zu 99% sicher, dass ich weiß, wie ich eigentlich die overlay-Taste, und erhalten die position des ausgewählten Textes, aber ich habe keine Ahnung, wie Sie überprüfen, um zu sehen, ob es etwas gibt, ausgewählt wird, ohne dass dabei eine Art von endlos-Schleife, die scheint wie eine schreckliche Idee.
Vielen Dank im Voraus!
EDIT:
//In my overlay.js with the rest of my sidebar code
isTextSelected: function () {
var myText = cqsearch.getSelectedText();
var sidebar = document.getElementById("sidebar");
var sidebarDoc = sidebar.contentDocument || document;
var curHighlightedDiv = sidebarDoc.getElementById("testDiv");
curHighlightedDiv.innerHTML = "Current text selection:" + myText;
}
};
//In my on firefox load function I added this
document.onmouseup = cqsearch.isTextSelected;
Also das ist, was ich habe kommen mit Robert ' s Vorschlag, und es hat einige Zeit gedauert, um alles an der richtigen Stelle, aber es funktioniert Super! Jetzt auf position my button". Dank einer Tonne!
InformationsquelleAutor der Frage Robert Smith | 2010-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein bisschen spät, um die Partei, sondern für zukünftige Referenz...
Werfen Sie einen Blick auf die
select
DOM event auf MDN.Feuert Sie, sobald Sie die Maus oder eine Taste losgelassen wird (zumindest in Chrome 40).
document.addEventListener('select', callback);
InformationsquelleAutor der Antwort jarsbe
Die Lösung mit dem mouseup-trick ist nicht die richtige Lösung. Das ist ein hacky Art und nicht perfekt. Weniger effiziente zu, wie Sie nun fangen mouseups für so viel Mist.
Den wirklichen Weg, es zu tun in Firefox addon ist die Verwendung
addSelectionListener
siehe dieses Thema: Beachten Sie für highlight?Nun, auch wenn der Benutzer benutzt die Tastatur, um die Auswahl vorzunehmen ist es gefangen.
Kredit an Neil für Kipp mich Weg auf, wo es zu finden auf MXR
InformationsquelleAutor der Antwort Noitidart