(495) 514-86-94

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

Этот скрипт довольно легко обойти. Но сильнее защитить от копирования текст можно только сохранив его на дискету и убрав её в сейф.

// Для запуска блокировки используем вызов
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;
    }
}

Вход в личный кабинет