View difference between Paste ID: 3yD54S6A and AQsTRSTk
SHOW: | | - or go back to the newest paste.
1
<script>
2
// Автор: Вечкасов Кирилл | TG блог: https://t.me/pomogay_marketing
3
// Скрипт отслеживание выделение H1 заголовка на сайте когда пользователь выделяет мышкой или на экране телефона весь заголовок или только его часть
4
// Скрипт подходит отлично для интернет магазинов где надо отследить сколько человек выделило название товара или его часть и ушло искать его в Яндекс/ Google
5
6
// Добавляем обработчики событий "touchend" и "mouseup" для документа
7
document.addEventListener("touchend", handleSelection);
8
document.addEventListener("mouseup", handleSelection);
9
10
// Обработчик события выделения текста
11
function handleSelection() {
12
  // Получаем выделенный текст
13
  var selectedText = getSelectedText();
14
15
  // Проверяем, что выделенный текст не пустой и родительский элемент является h1
16
  if (selectedText !== "" && isParentH1Element()) {
17
    // Выводим информацию о выделенном тексте в консоль
18
    console.log("Выделенный текст из h1: " + selectedText);
19
// Создайте JavaScript-событие в Яндекс Метрике с названием copy_name_h1 и вместо ID_METIKA впишите свой номер счетчика Яндекс Метрики
20-
	ym(ID_METIKA,'reachGoal','copy_name_h1');
20+
	ym(21588229,'reachGoal','copy_name_h1')
21
  }
22
}
23
24
// Функция получения выделенного текста
25
function getSelectedText() {
26
  var text = "";
27
  if (typeof window.getSelection !== "undefined") {
28
    text = window.getSelection().toString();
29
  } else if (typeof document.selection !== "undefined" && document.selection.type === "Text") {
30
    text = document.selection.createRange().text;
31
  }
32
  return text;
33
}
34
35
// Функция проверки, что родительский элемент выделения является h1
36
function isParentH1Element() {
37
  var selection = window.getSelection();
38
  if (selection.rangeCount > 0) {
39
    var parentElement = selection.getRangeAt(0).commonAncestorContainer.parentNode;
40
    return parentElement.tagName === "H1";
41
  }
42
  return false;
43
}
44
  </script>