Запрет выделения текста — различия между версиями

Материал из Мегапедии
Перейти к: навигация, поиск
(начало)
 
 
Строка 14: Строка 14:
 
document.body.onmouseup = undefined;
 
document.body.onmouseup = undefined;
 
document.body.oncontextmenu = undefined;
 
document.body.oncontextmenu = undefined;
 +
document.body.oncopy = undefined;
 
</source>
 
</source>
  
 
[[Категория:Программирование]]
 
[[Категория:Программирование]]

Текущая версия на 20:46, 1 мая 2013

Запрет выделения текста — метод защиты от копирования текста.

Описание

Копирование текста с веб-сайта производится через выделение текста и комбинацию Ctrl+V или же выбор «Копировать» в контекстном меню браузера. Защита, соответственно, обеспечивается изменением событий клика/начала выделения — выделение сбрасывается или вообще не работает. Потенциально это может защитить от нарушения авторских прав.

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

Примеры

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

Защита легко обходится через юзерскрипт: <source lang=javascript> document.body.onselectstart = undefined; document.body.onmouseup = undefined; document.body.oncontextmenu = undefined; document.body.oncopy = undefined; </source>