2017-10-03 3 views
0

Je développe une extension chromée. Je souhaite afficher une fenêtre contextuelle lorsque j'appuie longuement sur la page ou l'onglet ouvert en cours. Comment puis-je détecter quand un texte sur la page est pressé?Détection d'une pression longue sur le texte de la page [Développement extension Chrome]

+1

Il y a une réponse avec une démo de travail ici: https://stackoverflow.com/questions/19539329/how- to-apply-long-click-event-et-doubleclick-event-sur-le-même-élément-en-javas – Walk

Répondre

0

comme Buley décrit dans cet article: How to detect a long press on a div in Jquery?, vous devez regarder à la fois les événements mouseup et mousedown et calculer la différence.

(function() { 

// how many milliseconds is a long press? 
var longpress = 3000; 
// holds the start time 
var start; 

jQuery("#pressme").on('mousedown', function(e) { 
    start = new Date().getTime(); 
}); 

jQuery("#pressme").on('mouseleave', function(e) { 
    start = 0; 
}); 

jQuery("#pressme").on('mouseup', function(e) { 
    if (new Date().getTime() >= (start + longpress) ) { 
     // If you want to get the text of the element, use jQuery's element.text() 
     alert('long press! You pressed: ' + $(this).text()); 
    } else { 
     alert('long press! You pressed: ' + $(this).text()); 
    } 
    }); 
}()); 

Bien que ce soit un exemple jQuery, cela est également possible sans (voir l'exemple de marche)

+0

Merci. C'est ce que je cherchais. mais il y a une légère différence. Je veux obtenir le texte sur lequel la souris a longtemps appuyé. Ce peut être n'importe quel texte sur la page. – ilovecse

+0

Si je comprends bien, vous voulez retourner la valeur du texte sur lequel vous cliquez? –

+0

oui. Je souhaite retourner le texte sur lequel l'utilisateur a cliqué – ilovecse