Перекладаючи в Гуглі текст, який я зкопіював з одного сайту, примітив, що до тексту автоматично додалась адреса сторінки. Дещо здивований таким фактом, я все ж оцінив корисність даної фічі, коли є потреба хоч трохи захищати свій контент від копіпастерів. Від професійних плагіаторників, звичайно, нічого не спасе – лише скарги. Але часто тексти цитують на інших сайтах і форумах звичайні користувачі, без злого задуму. І, думаю, цілком ввічливо з боку автора буде допомогти їм вставити адресу на першоджерело інформації. Виявляється, це питання можна просто і елегантно вирішити.
Перебираючи в Інтернеті статті про захист текстів на сторінці, я частіше стикався або з повною забороною копіювання (це ідіотизм), або з надто екзотичними способами захисту, які вимагають додаткових зусиль чи матеріальних витрат. І найсмішніше, що такі інструкції самі десятки разів перевкрадені і зкопіпащені на багатьох сайтах навіть без зазначення джерела.
Нарешті я знайшов, що шукав. Скрипт працює на бібліотеці jQuery, яка вже й так підвантажується у більшості тем Вордпресу. Тому вам доведеться лише вставити в <header> скрипт:
<script type="text/javascript"> jQuery.fn.addtocopy = function (usercopytxt) { var options = { htmlcopytxt: '<br>More: <a href="' + window.location.href + '">' + window.location.href + '</a><br>', minlen: 25, addcopyfirst: false } jQuery.extend(options, usercopytxt); var copy_sp = document.createElement('span'); copy_sp.id = 'ctrlcopy'; copy_sp.innerHTML = options.htmlcopytxt; return this.each(function () { jQuery(this).mousedown(function () { jQuery('#ctrlcopy').remove(); }); jQuery(this).mouseup(function () { if (window.getSelection) { //good times var slcted = window.getSelection(); var seltxt = slcted.toString(); if (!seltxt || seltxt.length < options.minlen) return; var nslct = slcted.getRangeAt(0); seltxt = nslct.cloneRange(); seltxt.collapse(options.addcopyfirst); seltxt.insertNode(copy_sp); if (!options.addcopyfirst) nslct.setEndAfter(copy_sp); slcted.removeAllRanges(); slcted.addRange(nslct); } else if (document.selection) { //bad times var slcted = document.selection; var nslct = slcted.createRange(); var seltxt = nslct.text; if (!seltxt || seltxt.length < options.minlen) return; seltxt = nslct.duplicate(); seltxt.collapse(options.addcopyfirst); seltxt.pasteHTML(copy_sp.outerHTML); if (!options.addcopyfirst) { nslct.setEndPoint("EndToEnd", seltxt); nslct.select(); } } }); }); } jQuery(function () { jQuery("#content").addtocopy( { htmlcopytxt: '<br>Детальніше: <a href="' + window.location.href + '">' + window.location.href + '</a>', minlen: 50, addcopyfirst: false } ); }); </script> <style type="text/css" media="all"> #ctrlcopy { color:transparent; height:1px; overflow:hidden; position:absolute; width:1px; } </style>
Замість “Детальніше” можна вписати інший текст.
Спростив і переробив код під Вордпрес (сумісний режим jquery)