Воровство контента в интернете – дело хоть и привычное для всех, но не приятное. Владельцы сайтов тратят время и деньги на создание уникальных и интересных материалов, а спустя какое-то время, информация теряет свою уникальность, поскольку воришки контента копируют текст к себе на сайты.
Стопроцентной защиты от воровства контента нет, но существует много способов, которые затрудняют процесс «копипаста». Один из таких способов – добавление ссылки на источник, при копировании куска или всего текста с вашего сайта. Так, выделив интересный абзац или предложение и нажав на кнопку «копировать», в буфере обмена окажется не только текст, но и ссылка на первоисточник. Такой вариант защиты контента, позволяет увеличить популярность сайта и увеличить количество ссылок на ресурс в социальных сетях, форумах и подобных площадках, где люди общаются между собой.
Код добавления ссылки на источник при копировании текста
Чтобы добавить на сайт защиту контента, достаточно добавить в верстку страниц или js-файлы небольшой код. Он будет автоматически отлавливать события, которые совершает пользователь на страницах сайта. И если в какой-то момент текст будет выделен и скопирован, то в буфер обмена будет дописана ссылка на страницу сайта, где в это время находится пользователь.
Ниже приведен код, который отлавливает события и дописывает ссылку в буфер обмена. Этот код работает с библиотекой jQuery, поэтому она должна быть подключена на сайте. Так же для корректной работы, код необходимо подключить на всех страницах, которые будут защищаться от копирования.
$(document).ready(function(){
var ctrlDown = false, // положение клавиши Ctrl
// коды клавиш
ctrlKey = 17,
cmdKey = 91,
cKey = 67;
// проверка "зажатой" клавиши Ctrl
$(document).keydown(function(e) {
if (e.keyCode == ctrlKey || e.keyCode == cmdKey) ctrlDown = true;
}).keyup(function(e) {
if (e.keyCode == ctrlKey || e.keyCode == cmdKey) ctrlDown = false;
});
// обновление буфера обмена, при нажатии комбинации клавиш Ctrl + C
$(document).keydown(function(e) {
if (ctrlDown && e.keyCode == cKey) {
editBuffer();
return false;
};
});
// обновление буфера обмена, при выборе "Копировать" в контекстном меню
$(document).bind('copy', function() {
editBuffer();
});
});
// функция для обновления буфера обмена
function editBuffer() {
var htmlContent = '';
// получение данных userAgent, чтобы проверить браузер
var ua = navigator.userAgent;
if (ua.search(/MSIE/) > 0) {
// если браузер Internet Explorer
// получение выделенного текста
htmlContent = document.selection.createRange().htmlText;
} else {
// для всех остальных браузеров
// получение выделенного текста
var range = window.getSelection().getRangeAt(0);
htmlContent = range.toString();
}
// если удалось получить текст
if (htmlContent) {
// обновление содержимого буфера обмена
var tmp = document.createElement('INPUT');
// к выделенному тексту добавляется подпись и ссылка на текущую страницу
tmp.value = htmlContent + ' Узнайте больше на ' + location.href;
document.body.appendChild(tmp);
tmp.select();
document.execCommand('copy');
document.body.removeChild(tmp);
}
}
Рабочий пример кода можно скачать на github.
Пример сайта, где уже реализован такой функционал: pigeon.ru.
Заключение
Если у вас нет времени на эту задачку или по каким-то причинам не получается реализовать ее самостоятельно, то пишите нам, будем рады помочь.
