Показать сообщение отдельно
  #1 (permalink)  
Старый 29.07.2019, 22:36
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Запрет на копирование текста сайта.
Добрый день, уважаемые, вот нашел скрипт который блокирует быстрые клавиши на запрет копирование текста сайта.
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Closed Site</title>
    <script>
        "use strict";
        function preventSelection(element) {
         //запрещает выделение мышкой и комбинации клавиш Ctrl + A и Ctrl + U и Ctrl + S
            function preventSelection(element) {
                var preventSelection = false;
                var event = event || window.event;
                var sender = event.target || event.srcElement;


                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) {

                    preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);
                });

                //запрещаем нажатие клавищ Ctrl + A и Ctrl + U и Ctrl + S
                function killCtrlA(event) {
                    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);

        }

        preventSelection(document);
    </script>
</head>
<body>

<h1>If you see this sentence, that mean something go wrong !</h1>

</body>
</html>

Подскажите, пожалуйста, почему в консоль сыпятся ошибки на строке
var sender = event.target || event.srcElement; ? Как это можно исправить ? (Я нашел что event.srcElement используется для старых версий FF) но почему-то "use strict" не решил моей проблемы.
Ответить с цитированием