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