Как выбрать конкретное слово со страницы, дважды щелкнув и сохранить его в переменной - PullRequest
2 голосов
/ 04 апреля 2019

Например:

HTML

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

Javascript

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

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

Я пытаюсь получить одинслово внутри элемента, дважды щелкните это слово на странице в браузере.Например: «Привет, мир».Как я могу получить «Hello», нажав на страницу и назначив ее переменной?

Запрещены любые библиотеки, например, jQuery.

Ответы [ 3 ]

1 голос
/ 04 апреля 2019

try (после запуска фрагмента дважды щелкните «Hello World»)

function chooseAWordFromPage(e){
  const w = ''+window.getSelection();
  console.log(w);
}

document.body.addEventListener('dblclick',chooseAWordFromPage)
<body>
  <h1>Hello World</h1>
</body>
0 голосов
/ 04 апреля 2019

Если каждое слово не окружено тегами <span>, вы не сможете разделить слова на отдельный узел DOM.Решение words.split(" ") Камила поможет вам начать, но для события click больше ничего не нужно прикреплять.

0 голосов
/ 04 апреля 2019

Это звучит как проблема XY (вы спрашиваете, как реализовать свое решение, а не объяснять свою проблему). Если вы хотите получить именно слово, по которому дважды щелкнули мышью, вам не следует делать это с innerText; innerText просто дает полный текст, и нет способа определить, какая часть этого текста была нажата.

Когда вы дважды щелкаете слово на странице, оно обычно выбирается, поэтому вы действительно хотите получить выделенный текст на странице, а не пытаться анализировать его из элемента, по которому щелкнули:

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

document.body.addEventListener('dblclick',chooseAWordFromPage)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...