Добавление ссылки при копировании текста

Мы можем решить эту задачу за вас!
Стоимость выполнения: 2000 рублей;
Время выполнения: 3 часа;
Спешим на помощь: контакты.

Воровство контента в интернете – дело хоть и привычное для всех, но не приятное. Владельцы сайтов тратят время и деньги на создание уникальных и интересных материалов, а спустя какое-то время, информация теряет свою уникальность, поскольку воришки контента копируют текст к себе на сайты.

Стопроцентной защиты от воровства контента нет, но существует много способов, которые затрудняют процесс «копипаста». Один из таких способов – добавление ссылки на источник, при копировании куска или всего текста с вашего сайта. Так, выделив интересный абзац или предложение и нажав на кнопку «копировать», в буфере обмена окажется не только текст, но и ссылка на первоисточник. Такой вариант защиты контента, позволяет увеличить популярность сайта и увеличить количество ссылок на ресурс в социальных сетях, форумах и подобных площадках, где люди общаются между собой.

Код добавления ссылки на источник при копировании текста

Чтобы добавить на сайт защиту контента, достаточно добавить в верстку страниц или 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.

Заключение

Если у вас нет времени на эту задачку или по каким-то причинам не получается реализовать ее самостоятельно, то пишите нам, будем рады помочь.


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

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *