Защита страницы от копирования
Этот скрипт довольно легко обойти. Но сильнее защитить от копирования текст можно только сохранив его на дискету и убрав её в сейф.
// Для запуска блокировки используем вызов
preventSelection(document);
function preventSelection(element){
var preventSelection = false;
// Не даем выделять текст мышкой
addHandler(element, 'mousemove', function(){
if(preventSelection)
removeSelection();
});
addHandler(element, 'mousedown', function(event){
var event = event || window.event;
var sender = event.target || event.srcElement;
preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
});
// Блокируем dblclick
// если вешать функцию не на событие dblclick, можно избежать
// временное выделение текста в некоторых браузерах
addHandler(element, 'mouseup', function(){
if (preventSelection)
removeSelection();
preventSelection = false;
});
// Блокируем ctrl+A
// скорей всего это и не надо, к тому же есть подозрение
// что в случае все же такой необходимости функцию нужно
// вешать один раз и на document, а не на элемент
addHandler(element, 'keydown', killCtrlA);
addHandler(element, 'keyup', killCtrlA);
// Блокируем правую клавишу мыши
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown = right;
} else {
if (document.all && !document.getElementById){
document.onmousedown = right;
}
}
document.oncontextmenu = new Function("return false");
}
function addHandler(element, event, handler){
if (element.attachEvent)
element.attachEvent('on' + event, handler);
else
if (element.addEventListener)
element.addEventListener(event, handler, false);
}
function removeSelection(){
if (window.getSelection) { window.getSelection().removeAllRanges(); }
else if (document.selection && document.selection.clear)
document.selection.clear();
}
function killCtrlA(event){
var event = event || window.event;
var sender = event.target || event.srcElement;
if (sender.tagName.match(/INPUT|TEXTAREA/i))
return;
var key = event.keyCode || event.which;
if (event.ctrlKey && key == 65) // 65 - код буквы A
{
removeSelection();
if (event.preventDefault)
event.preventDefault();
else
event.returnValue = false;
}
}
function right(e){
if ((document.layers || (document.getElementById && !document.all))
&& (e.which == 2 || e.which == 3)){
return false;
} else {
if (event.button == 2 || event.button == 3){
return false;
}
return true;
}
}