2
votes

Comment choisir un mot spécifique à partir d'une page en prenant un double-clic et le stocker dans une variable

Par exemple:

HTML

function chooseAWordFromPage(e){
  const words = e.target.innerText
  //I get stuck here. Please help me
}

document.body.addEventListener('dblclick',chooseAWordFromPage)

Javascript

<body>
  <h1>Hello World</h1>
</body>


2 commentaires

Je ne suis pas sûr de comprendre la question. Votre code obtiendra le texte intégral à l'intérieur de l'élément; qu'essayez-vous d'isoler de cela?


J'essaie d'obtenir un mot dans l'élément en double-cliquant sur ce mot sur la page dans le navigateur. Par exemple: "Hello World". Comment puis-je obtenir "Hello" en cliquant sur la page et l'attribuer à une variable?


3 Réponses :


2
votes

essayez (après avoir exécuté l'extrait de code, double-cliquez sur "Hello World")

<body>
  <h1>Hello World</h1>
</body>
function chooseAWordFromPage(e){
  const w = ''+window.getSelection();
  console.log(w);
}

document.body.addEventListener('dblclick',chooseAWordFromPage)


1 commentaires

J'essaie d'obtenir le mot en cliquant sur ce mot sur la page, et le mot cliqué est stocké dans une variable.



0
votes

Cela ressemble à un problème XY (vous demandez comment implémenter votre solution, plutôt que d'expliquer votre problème). Si vous voulez obtenir spécifiquement le mot qui a été double-cliqué, vous ne devriez pas faire cela avec innerText; innerText donne juste le texte intégral et il n'y a aucun moyen de déterminer sur quelle partie de ce texte a été cliquée.

Lorsque vous double-cliquez sur un mot sur une page, il est normalement sélectionné, donc ce que vous voulez vraiment faire ici, c'est obtenir la sélection texte sur la page, n'essayez pas de l'analyser à partir de l'élément sur lequel vous avez cliqué:

function chooseAWordFromPage(){
    const word = window.getSelection().toString();
}

document.body.addEventListener('dblclick',chooseAWordFromPage)


0 commentaires

0
votes

À moins que chaque mot ne soit entouré de balises , il est impossible de séparer les mots en un nœud DOM discret. La solution words.split ("") de Kamil vous aiderait à démarrer, mais il n'y a rien d'autre pour l'événement click auquel s'attacher.


0 commentaires