Как сделать скопированный текст нечитаемым или убираем пробелы из буфера обмена с помощью javascript


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

Что он делает: убирает пробелы в копируемом тексте, делая последний нечитаемым. Вставляем javascript между тегами body, лучше ближе к началу страницы (чтобы исполнился точно, не помешали ошибки других исполняемых скриптов). Не очень хитрая защита от копирования, но для больших кусков текста довольно трудозатратнобходимая. Если в лоб, естественно. Итак, вот листинг:

<script type="text/javascript">
function zam() {
	var el = document.getElementsByTagName('body')[0];
	var sel = window.getSelection();
    var txt = sel +"";
    txt = txt.replace(/\s/g, '');
	var nd = document.createElement('div');
	nd.style.position = 'absolute';
	nd.style.left = '-99999px';
	el.appendChild(nd);
	nd.innerHTML = txt;
	sel.selectAllChildren(nd);
	window.setTimeout( function() {
		el.removeChild(nd);
	}, 0);
}
document.oncopy = zam;
</script>
Для тех, кто хочет разобраться, как именно работает скрипт, пара комментариев; в скобках номера строк. Берем информацию из буфера обмена (4), убираем из неё пробелы (6), создаем дочерний элемент для body (7), убираем его далеко (8-9), вставляем в него текст без пробелов (11), добавляем измененный текст в буфер обмена (12), запускаем функцию удаления элемента и все происходит по новому (13-15).

Напоследок замечу, что эта защита обходится (как и большинство других) простым отключением javascript в браузере. Если вам требуется написать скрипт на JS или выполнить любую другую работу, связанную с сайтами (в частности, создать недорогой сайт для диплома), то вы всегда можете обратить ко мне на почту up777up@yandex.ru или сразу же написать в скайп up777up2 - я с удовольствием вам помогу.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, javascript




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Фильтрация товаров на опенкарт без перезагрузки страницы
Используем C#, чтобы узнать, из чего сделан ваш компьютер
Разработка сайтов