аватар Автор: Сергей Касаткин | 26 августа 2013 11:08

Статьи / JavaScript /

Как запретить копирование текста с сайта?


Подобный вопрос приходится слышать часто. Действительно, допустим Вы написали какую-то статью или другой развёрнутый материал - почему после этого Вы должны становиться жертвой воровства? Или Ваш же материал появляется на другом сайте, а робот, проиндексировав его первым, считает, что оригинальный текст именно там? Давайте попробуем разобраться с тем, как с этим бороться.

Запрещаем копирование текста средствами JS


1. Пожалуй, это самый распространённый способ, которым можно отпугнуть новичков. Для этого в тег <body> дописываем значение для атрибута oncopy.

Если хотите прописать данное свойство для конкретного отрезка текста, то поместите его в div и допишите то же значение атрибута. В статье рассмотрен пример со всем документом.

Код HTML и JS

<body oncopy="return false;">

Теперь выделенный материал не будет копироваться! Но выдыхаем, так как работает не везде (однако уже отсекает большую аудиторию плагиатчиков), поэтому в случае с InternetExplorer и Opera надо будет искать другой выход из ситуации.

2. Следующий способ будет действовать ещё и с Opera. Смысл будет заключаться в том, что выделить текст теперь будет нельзя, однако клики и команды будут продолжать работать. Также работаем с <body>.

Код HTML и JS

<body onmousedown="return false;" onclick="return true;">

Есть одно но - некоторые посетители сайтов любят выделять читаемый текст, многим отсутствие подобной возможности будет не по душе.

3. Способ, описанный ниже чем-то похож на предыдущий. Только тут вы сможете запретить и выделять, и копировать текст.

Код JS

<script language=javaScript>document.onselectstart=new Function("return false");
document.ondragstart=new Function("return false");</script>


4. Ещё одна версия защиты от копирования. Это функция. Если хотите её зпустить, то привяжите к какому-либо потенциально копируемому объекту:

Код JS

<script language=JavaScript>
function notcopy(){
alert("Пожалуй, скопировать с этой страницы будет не так просто!")
return false
}
</script>


5. В конце я бы предложил вообще запретить использование правой кнопки мыши:

Код JS

<script language=javaScript>
var message="";
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2) {
(message);
return false;}}}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS;
}else{
document.onmouseup=clickNS;
document.oncontextmenu=clickIE;
}
document.oncontextmenu=new Function("return false")
</script>

От неопытного пользователя Вы теперь точно защищены!

Теперь о том, что имеем итоге


Всё, теперь можно было бы успокоиться и спокойно вдохнуть! Однако не всё так просто. Совесть была не чиста, если бы я не написал Вам о минусах этих методов, нет-нет, не функциональных.

1. Упомянутыми выше скриптами мы боремся с воришками, но все же не надо забывать и о порядочных людях, которые скопировав контент, действительно поставят индексируемую ссылку на Ваш сайт!

2. Вторым очень важным минусом является проблема при продвижении. Точно не опишу механизмы работы фильтров, но если у Вас весь сайт ушпигован подобными скрывающими/запрещающими скриптами, то и поисковая система отнесётся к Вам не дружелюбно. Не хотите делиться контентом - не надо. Поэтому применяйте скрипты только в случае закрытых от индексации страниц или в крайних случаях!

3. Пользователь пришёл к Вам за материалом, а сайт им не делится. Зачем тогда это всё? Вы просто отпугнёте посетителя, который пришёл вопросом. Да и если человек знает хотя бы основы HTML и JS, то это ему вряд ли помешает. 100% защиты от опытного пользователя нет и не будет - это интернет. Затем всё и выкладывается.

Моё мнение - стоит защищать от копирования только персональные данные: телефоны, email и так далее. Поэтому делать это стоит только при необходимости!

Спасибо за внимание!
 



Похожие статьи


Комментарии к статье (vk.com)