На нашем сайте мы используем 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








Базы данных ADO.NET на языке C++\CLI
Вход по паролю на PHP и авторизация через куки


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