Защита текстов от копирования

Сборник примеров защиты от копирования текста с сайта, добавление копирайта при копировании и отключение выделения текста в браузере и методы обхода этих ограничений.

Первый вариант – добавить атрибут oncopy="return false;" к тегу <body>.

<!DOCTYPE html>
<html lang="ru">
<head>
	<title></title>
</head>
<body oncopy="return false;">
...
</body>
</html>
HTML

Второй вариант на JQuery:

$(function(){
	$('body').attr('oncopy', 'return false;');
}
JS
document.oncopy = function(){
	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);
}
JS

Можно добавить адрес текущий страницы:

div.innerHTML = selection + ' Источник ' + window.location.href;
JS

У всех тегов на странице:

$('body').on('contextmenu', false);
JS

У элементов с class="img".

$('.img').on('contextmenu', false);
JS

Через CSS можно отключить выделение текста (не поддерживается старыми браузерами).

* {
  -webkit-touch-callout: none;
	-webkit-user-select: none;
	 -khtml-user-select: none;
	   -moz-user-select: none;
		-ms-user-select: none;
			user-select: none;
}
CSS
19.12.2016, обновлено 14.12.2019
7944
Предыдущая запись Wordpress – не выводятся теги p

Комментарии

, чтобы добавить комментарий.

Другие публикации

Пример парсинга html-страницы на phpQuery
phpQuery – это удобный HTML парсер взявший за основу селекторы, фильтры и методы jQuery, которые позволяют...
34331
+14
Работа с Input Text jQuery
Сборник приемов JQuery для работы с текстовыми полями. Во всех примерах используется следующий html код...
87774
+14
Печать HTML страниц
Очень часто разработчики забывают про печатную версию сайта, поэтому можно встретить такой результат на бумаге...
28596
+6
Как сделать интерактивную схему на SVG + jQuery
В данном примере описано как сделать интерактивную схему магазинов на основе векторной графики SVG и jQuery.
30905
+12
Ускорение загрузки Яндекс Карт
Несколько рекомендаций как увеличить скорость загрузки API Яндекс.Карт 2.0.
18772
+9
Фиксированное горизонтальное меню с активными пунктами
Пример горизонтального меню для лэндингов, в котором реализовано...
8765
+5