пр. Мира 620000 Россия +7900-000-00-00
Логотип блога интернет-бродяги

Как отключить копирование текста на сайте

Последнее обновление - 4 октября 2020 в 00:12

Чтобы отключить копирование текста на сайте, работающем под управлением CMS WordPress, будем работать лишь с одним файлом — footer.php. Потребуется открыть его на редактирование и вставить js-скрипт перед тегом «body». После проведённых изменений, файл необходимо пересохранить на сервере.

Приведу в качестве примера два скрипта, которые реализуют такую возможность. В первом случае текст на странице сайта можно выделить левой кнопкой мышки. Однако, её правая клавиша будет заблокирована, что не позволит скопировать информацию. Кроме того, при попытке выделить текст сочетанием клавиш «Ctrl+A», вы увидите сообщение вверху: «ОЙ! ТУТ НИКАК НЕ СКОПИРОВАТЬ!» (его можно изменять).

<script> <![CDATA[
document.ondragstart = test; 
//запрет на перетаскивание 
document.oncontextmenu = test; 
//запрет на выведение контекстного меню 
function test() { 
return false 
} 
 ]]></script>

<script> <![CDATA[
document.onkeydown=key; 
function key() 
{ 
window.status=event.keyCode; 
if(event.keyCode==17)alert("ОЙ! ТУТ НИКАК НЕ СКОПИРОВАТЬ!"); 
} 
 ]]></script>

Скрипт чётко работает в браузере Google Chrome и Yandex браузере. В других не проверял. Единственно, в Яндекс-браузере всё же получится скопировать выделенный текст, если в его настройках, в разделе «Умная строка», отмечен чекбокс «Показывать кнопки «Копировать» и «Поделиться»».

Настройки умной строки Яндекс-браузера

Появится такая кнопка и копируй сколько хочешь.

Кнопка копировать в Яндекс-браузере

Кроме того, скопировать нужный текст получится, если открыть исходный код страницы путём нажатия клавиш «Ctrl+U» на клавиатуре. То есть, скопипастить информацию для более продвинутого интернет-пользователя не составит особого труда.

Чтобы ещё больше усложнить жизнь копипастерам, можно применить код, который я нашёл в учебнике по javascript. Его так же, как и в предыдущем случае, можно установить в файл footer.php.

<script>
        "use strict";

         //запрещает выделение мышкой и комбинации клавиш Ctrl + A и Ctrl + U и Ctrl + S
            function preventSelection(element) {
                var preventSelection = false;
                function addHandler(element, event, handler) {
                    if (element.attachEvent) element.attachEvent('on' + event, handler);
                    else if (element.addEventListener) element.addEventListener(event, handler, false);
                }

                function removeSelection() {
                    if (window.getSelection) {
                        window.getSelection().removeAllRanges();
                    } else if (document.selection && document.selection.clear)
                        document.selection.clear();
                }

                //запрещаем выделять текст мышкой
                addHandler(element, 'mousemove', function () {
                    if (preventSelection) removeSelection();
                });
                addHandler(element, 'mousedown', function (event) {
                     var event = event || window.event;
                     var sender = event.target || event.srcElement;
                    preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
                });

                //запрещаем нажатие клавищ Ctrl + A и Ctrl + U и Ctrl + S
                function killCtrlA(event) {
                    var event = event || window.event;
                    var sender = event.target || event.srcElement;
                    if (sender.tagName.match(/INPUT|TEXTAREA/i)) return;
                    var key = event.keyCode || event.which;
                    if ((event.ctrlKey && key == 'U'.charCodeAt(0)) || (event.ctrlKey && key == 'A'.charCodeAt(0)) || (event.ctrlKey && key == 'S'.charCodeAt(0)))  // 'A'.charCodeAt(0) можно заменить на 65
                    {
                        removeSelection();
                        if (event.preventDefault) event.preventDefault();
                        else event.returnValue = false;
                    }
                }

                addHandler(element, 'keydown', killCtrlA);
                addHandler(element, 'keyup', killCtrlA);
            }

            preventSelection(document);
    </script>

Скрипт запрещает выделение мышкой, а также комбинации клавиш «Ctrl+A» (Выделить всё) и «Ctrl+U» (Посмотреть исходный код) и «Ctrl+S» (Сохранить как). А значит, не выйдет скопировать текст ни при помощи мыши, ни посредством использования «горячих клавиш» клавиатуры, ни с помощью умной строки Яндекс-браузера.

Несмотря на то что запретить пользователю копировать тексты на сайте не представляет никакой сложности, лично я не вижу в этом никакого смысла. Никогда не пользовался таким функционалом.

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

Уточнение: с 17.09.2020 Яндекс отключил инструмент «Оригинальные тексты».

Во-вторых, URL записи несложно быстро проиндексировать в приоритетном порядке через «Переобход страниц» Яндекс.Вебмастера или «Запрос на индексирование» в Google Search Console. А там пусть кто хочет и сколько угодно копирует ваши тексты, ведь поисковики будут знать, что автор именно вы, а не копипастер.

Друзья, плюсаните, вдруг пригодится!

Почитайте похожие материалы

Об авторе: Hobo

Добавить комментарий

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

× 2 = 12

 

Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять