NOTE: Résolu mon propre problème, il semble. Voir les modifications. J'essaie d'écrire un script greasemonkey qui mettra en évidence tous les textes correspondants sur la page lorsque l'utilisateur sélectionne un texte, puis supprime la mise en évidence lorsque la sélection est annulée. Je suis à la recherche d'un moyen jQuery de le faire. Il semble qu'il y ait un événement select dans le noyau jQuery, mais je ne pouvais pas le faire fonctionner comme je le voulais. Essayez d'exécuter ce qui suit sur cette page par exemple:Comment attacher l'événement "select" à chaque nœud de texte sur la page? Y a-t-il un meilleur moyen?
$(document).select(function() {
console.log("hey");
});
Il n'y a pas de réponse. Il semble donc que je doive attacher ceci aux nœuds de texte en particulier. Mais cela ne me semble pas pratique. Ce serait trop lent.
Des idées, des idées? Merci.
EDIT # 1: Ken Browning a souligné que l'événement select de jQuery se déclenche uniquement dans les zones de texte et de saisie. Donc je suppose que je dois abandonner ça. Peut-être que je peux changer légèrement ma question, et demander si quelqu'un peut me dire la manière javascript de lier les événements de sélection à tous les nœuds de texte.
EDIT # 2: Je pense avoir trouvé une partie de ma réponse. Cela renvoie le texte sélectionné sur la page, mais vous devez toujours cliquer sur un bouton pour l'afficher. Il n'y a pas de liaison d'événement select. Hm.
<script language=javascript>
function getSelText()
{
var txt = '';
if (window.getSelection)
{
txt = window.getSelection();
}
else if (document.getSelection)
{//javascript select event
txt = document.getSelection();
}
else if (document.selection)
{
txt = document.selection.createRange().text;
}
else return;
document.aform.selectedtext.value = txt;
}
</script>
<input type="button" value="Get selection" onmousedown="getSelText()">
http://www.codetoad.com/javascript_get_selected_text.asp
EDIT # 3: SO Je lié à l'événement mouseup plutôt que de sélection. Je vérifie alors la valeur de getSelText() pour aller plus loin après ce point. Yay! EDIT # 4: Au cas où quelqu'un serait curieux, j'ai posté mon script terminé sur Userscripts. Voici le lien. Prendre plaisir!
http://userscripts.org/scripts/show/55148
génial. Merci pour le commentaire informatif. – picardo
if (document.selection && document.selection.createRange) selectText = document.selection.createRange(). Text; // IE - pas que ce soit nécessaire pour greasemonkey, mais pourrait être utile – gnarf