Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.09.2023, 11:16
Профессор
Отправить личное сообщение для javascript_pupil Посмотреть профиль Найти все сообщения от javascript_pupil
 
Регистрация: 05.07.2009
Сообщений: 222

Определить textarea с выделенным текстом
В форме есть несколько textarea, необходимо получить id textarea в которой выделен текст. Пока знаний хватило только на это:

<!DOCTYPE html>
<html>
<head>
  <title>Пример</title>
</head>
<body>
  <textarea id="textarea1" name="field1">Выделенный текст в первом поле</textarea>
  <textarea id="textarea2" name="field2">Текст во втором поле</textarea>
  <img src="image.png" alt="Изображение" style="cursor: pointer;" id="image">

  <script>
    function attachEventListenersToTextareas() {
      var textareas = document.getElementsByTagName('textarea');
      
      for (var i = 0; i < textareas.length; i++) {
        textareas[i].addEventListener("mouseup", function() {
          var selectedText = window.getSelection().toString();
          if (selectedText !== "") {
          alert("ID textarea с выделенным текстом: " + this.id);
          }
        });
      }
    }

    attachEventListenersToTextareas();

    document.getElementById("image").addEventListener("click", function() {
      attachEventListenersToTextareas();
    });
  </script>
</body>
</html>


Вопрос: как сделать так, чтобы alert появлялся только при нажатии на картинку? Сейчас он выскакивает сразу после выделения текста.

Заранее спасибо!

Последний раз редактировалось javascript_pupil, 07.09.2023 в 11:19.
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2023, 14:07
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,498

document.activeElement
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 07.09.2023, 18:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

javascript_pupil,
<!DOCTYPE html>
<html>

<head>
    <title>Пример</title>
</head>

<body>
    <textarea id="textarea1" name="field1">Выделенный текст в первом поле</textarea>
    <textarea id="textarea2" name="field2">Текст во втором поле</textarea>
    <img src="image.png" alt="Изображение" style="cursor: pointer;" id="image">
    <script>
        let selection;
        document.onselectionchange = () => {
            selection = document.activeElement;
        };
        document.getElementById("image").addEventListener("click", function() {
            alert(selection?.id)
        });
    </script>
</body>

</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работать с выделенным текстом в IE11? javascript_pupil Общие вопросы Javascript 9 30.10.2022 08:00
Вопрос по textarea stivins Элементы интерфейса 3 05.11.2015 16:59
Отчистка формы и управление выделенным текстом koekto93 Элементы интерфейса 3 25.08.2015 17:52
Работа с текстом, выделенным в textarea (opera+ff) Белый шум Общие вопросы Javascript 12 21.01.2012 01:54
Работа с выделенным текстом. lancer Общие вопросы Javascript 1 21.03.2008 16:55