На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Как сделать скопированный текст нечитаемым или убираем пробелы из буфера обмена с помощью 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 - я с удовольствием вам помогу.




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





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




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


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.