Безусловно, методы не дают 100% защиты — профессиональные копипасты знают способы извлечения нужного материала со страниц чужого сайта. Тем не менее, установка какого-либо кода заставит «плохиша» напрячься, нервничать или вовсе отказаться от суеты вокруг вашего сайта.
Метод рассчитан на порядочных копипастов — к скопированному тексту автоматически добавляется ссылка на источник. Её, конечно, легко убрать, но напомнить лишний раз о своих правах все-таки стоит.
<script type="text/javascript">
//<![CDATA[
function addLink() {
var body_element = document.getElementsByTagName('body')[0];
var selection = window.getSelection();
var pagelink = "<p>Источник: <a href='
"+document.location.href+"'>"+document.location.href+"</a>
Блог Иванова Ивана ©</p>";
var copytext = selection + pagelink;
var newdiv = document.createElement('div');
newdiv.style.position = 'absolute';
newdiv.style.left = '-99999px';
body_element.appendChild(newdiv);
newdiv.innerHTML = copytext;
selection.selectAllChildren(newdiv);
window.setTimeout( function() {
body_element.removeChild(newdiv);
}, 0);
}
document.oncopy = addLink;
//]]>
</script>
Замените в скрипте фразу Блог Иванова Ивана на своё.
1) Метод можно назвать гуманным — при нажатии правой кнопки мыши появится сообщение о запрете копирования (текст может быть любым). Посетитель хотя бы поймет, почему у него не работает мышь. Данный метод рассчитан на копипастов-новичков — jQuery диалоговое окно блокировки можно отключить, а текст скопировать клавишами CTRL + C.
<script type="text/javascript"
src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
//catch the right-click context menu
$(document).bind("contextmenu",function(e) {
//warning prompt - optional
alert("Простите, но копирование запрещено.");
//delete the default context menu
return false;
});
});
</script>
2) Код без использования jQuery — сообщения нет, отключить диалоговое окно нельзя. С изображениями тоже придется постараться. От копирования текста клавишами CTRL + C не спасает… Впечатлительные посетители-копипасты могут испугаться из-за неработоспособности мыши :-)
<body oncontextmenu="return false;">
Небольшая строчка кода не позволяет скопировать текст на странице ни клавишами CTRL + C, ни с использованием контекстного меню. Правая кнопка работает, текст выделяется, но копирования не происходит. Действенная штука, жутко раздражает :-) Увы, но изображения от копирования не защищает.
<body oncopy="return false" oncut="return false" onpaste="return false">