Скрипт защиты текста от копирования

Часто у вебмастеров и оптимизаторов становится вопрос: как защитить уникальный текстовый контент от копирования? Говорить о том стоит ли его защищать вообще в этой статье мы не будем, а разберем лишь некоторые из способов защиты.

Вариантов защиты (запрета) текстов от копирования на самом деле не много, и самый популярный из них - это запрет на копирование с помощью скрипта, запрещающего правую кнопку мыши или набор клавиш Ctrl+C. К минусам этого скрипта можно отнести то, что часто сами пользователи для тех или иных целей нуждаются в копировании части текста (не для копипаста на своих сайтах, а скажем для заметок, диплома, для письма и.т.д) и невозможность это сделать порой очень раздражает. Что же касается опытного вебмастера или контент менеджера, то ему не составит особого труда нажать Ctrl+U, и с исходного кода скопировать нужный ему текст.

Я не сторонник такого метода, но все же если он вас устраивает - вот скрипт запрета правой кнопки мыши:

<script type="text/javascript">

var message="Правая кнопка мыши отключена!";
function click(e) {
   if (document.all) {	// IE
      if (event.button == 2) {	// Чтобы отключить левую кнопку поставьте цифру 1
          alert(message);	// чтобы отключить среднюю кнопку поставьте цифру 1
          return false;}
      }
   if (document.layers) { // NC
      if (e.which == 3) {
          alert(message);
          return false;}
      }
}
if (document.layers)
   {document.captureEvents(Event.MOUSEDOWN);}
document.onmousedown=click;
document.oncontextmenu=function(e){return false};

</script>

Я предлагаю использовать альтернативный вариант, который не будет доставлять особых неудобств обычным пользователям, и может даже принести пользу для SEO.

Представленный ниже Javascript, в отличии от предыдущего не запрещает копировать текст, а при копировании вставляет скрытую ссылку на первоисточник. Конечно, вероятней всего опытный копипастер заметит ее в коде, но все же часть таких ссылок могут остаться на внешних сайтах принеся на ваш сайт заветные обратные ссылки.

Вот собственно говоря сам скрипт позволяющий вставлять скрытую ссылку на сайт первоисточник:

  <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>
  

Вставьте этот Javascript в файл шаблона вашего сайта (у каждой CMS он свой) перед закрывающим тегом </body>. По умолчанию этот скрипт будет вставлять безанкорную ссылку вида:

Источник: http://адрес сайта/адрес страницы с которой копируют текст

Советую не менять этот вид, так как безанкорная ссылка выглядит естественней и риски получить фильтр от поисковиков сводится к минимуму, но все же если хотите поменять - то "пилите" этот участок кода:

 var pagelink = "<p>Источник: <a href='"+document.location.href+"'>"+document.location.href+"</a></p>";

где второй "+document.location.href+" между тегами <a></a> можете заменить на нужный вам анкор.