Защита текстов от копирования
galina2601 24-02-2021, 22:03 487 Уроки по HTMLЗащита текстов на сайте - дело неблагодарное.
Даже если вы запретите все возможности прямого копирования, есть несколько возможностей воровства текстов.
Первый, самый сложный. Просто сесть и переписать текст с сайта в блокнот. Да, медленно. Да, тяжело. Но от данного метода копирования не убережёт никто.
Второй- сделать скриншот текста и отправить в программу распознавания текстов, типа Fine Reader. Тоже не просто, но полегче, чем первый.
Единственная надежда на то, что практически никто из "копипастеров" на это не способен. Их и зовут "копипастеры" потому, что они умеют только нажимать пункты меню Copy и Past, то есть Копировать и Вставить.
Поэтому защита от копипастеров - это почти наверняка и возможность и полной защиты.
Варианты защиты текстов:
- Запретить копировать текст с сайта
- При копировании текста добавить к нему копирайт
- Отключить выделение текста в браузере
Начнём по пунктам.
Пункт первый. Запретить копировать текст с сайта
самый простой способ - добавить атрибут oncopy="return false;" к тегу < body >
<html lang="ru">
<head>
<title></title>
</head>
<body oncopy="return false;">
...
</body>
</html>
Пункт второй. При копировании текста добавить к нему копирайт
Тут уже простыми атрибутами не обойдешься.
Нужно добавить java-скрипт.
var body = document.getElementsByTagName('body')[0];
var selection = window.getSelection();
var div = document.createElement('div');
div.style.position = 'absolute';
div.style.left = '-99999px';
body.appendChild(div);
div.innerHTML = selection + ' Источник: Site.com';
selection.selectAllChildren(div);
window.setTimeout(function(){
body.removeChild(div);
}, 0);
}
Пункт третий. Отключить выделение текста в браузере
А это просто стили, которые прописываем в файле css.
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
Надеюсь, статья была вам полезной.