- Отключение выделения текста, вырезания, копирования и щелчка правой кнопкой мыши на странице с помощью jQuery и JavaScript
- 1. Отключить выделение текста с помощью JavaScript/jQuery
- JS
- JS
- jQuery
- 2. Отключить выделение текста с помощью CSS
- CSS
- 3. Отключить правый клик:
- JS
- jQuery
- 4. Шифрование HTML:
- Выделение текста для копирования CSS
- Свойство user-select у редактируемых элементов, таких как input , textarea
- Активные псевдоэлементы ::before и ::after
- Выделение текста для копирования CSS
- Свойство user-select у редактируемых элементов, таких как input , textarea
- Активные псевдоэлементы ::before и ::after
- user-select¶
- Демо¶
- Синтаксис¶
- Значения¶
- Примечание¶
- Спецификации¶
- Поддержка браузерами¶
- Описание и примеры¶
- Запретить выделение текста (CSS)
- Категории
- Читайте также
Отключение выделения текста, вырезания, копирования и щелчка правой кнопкой мыши на странице с помощью jQuery и JavaScript
В этом посте мы обсудим, как остановить кражу контента с вашего веб-сайта, просто отключив выделение текста, вырезание, копирование и щелчок правой кнопкой мыши с помощью мыши и клавиатуры. Мы также расскажем, как можно зашифровать HTML, чтобы исходный код был доступен для чтения только браузерам.
1. Отключить выделение текста с помощью JavaScript/jQuery
Вы можете использовать следующий код, чтобы предотвратить выделение текста (и, следовательно, копирование-вырезание) внутри тега body или div. Он в основном переопределяет поведение браузера по умолчанию на onmousedown а также onselectstart мероприятие.
JS
Если вы хотите разрешить выделение текста, но при этом предотвратить копирование, используйте следующий код. Вы также можете использовать jQuery bind() чтобы добиться того же, указав события вырезания и копирования, которые запускаются, когда пользователь вырезает или копирует текст.
JS
jQuery
2. Отключить выделение текста с помощью CSS
The user-select Свойство указывает, где пользователи могут выбирать текст внутри элемента. Если установлено значение none, выбор не начинается с этого элемента. Вы можете использовать это свойство и применить его к тег, чтобы предотвратить выделение текста.
CSS
Вместо того, чтобы применять эти свойства ко всему телу, вы можете переместить их в класс и применить к элементам, выбор которых вы хотите отключить.
3. Отключить правый клик:
Вы можете использовать следующий код, чтобы предотвратить щелчок правой кнопкой мыши на любой странице. Идея состоит в том, чтобы захватить onContextMenu событие и вернуть false в обработчике события. Это заблокирует любой доступ к контекстному меню с помощью щелчка правой кнопкой мыши, а также с клавиатуры.
JS
jQuery
4. Шифрование HTML:
Все вышеупомянутые методы будут работать нормально, но ваш исходный код HTML по-прежнему уязвим. Вы можете предотвратить кражу исходного кода другими, используя это Инструмент для шифрования HTML.
Шифрование HTML преобразует содержимое вашей веб-страницы в непростой для понимания формат. Это может в значительной степени защитить ваш код от кражи другими. Единственное ограничение заключается в том, что вы увидите свою страницу только в браузерах с поддержкой JavaScript.
Это все об отключении выделения текста, вырезании, копировании и щелчке правой кнопкой мыши на странице.
Средний рейтинг 4.32 /5. Подсчет голосов: 41
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Выделение текста для копирования CSS
Если скопировать выделенный текст вместе с изображением , то вместо картинки будет содержимое её атрибута alt . Само изображение можно сохранить отдельно от текста. Щелчок по картинке не выделит текст всего элемента.
Если скопировать выделенный текст вместе с изображением src="//4.bp.blogspot.com/-eJraU5lCufs/UFa8PpMUv8I/AAAAAAAADLQ/Y5SGHBd91-Q/s00/smail-bolshoi-palets-vverh.gif" alt="Смайлик «Большой палец вверх»" height="104" width="147" title="Отлично!"/>, то вместо картинки будет содержимое её атрибутаalt
. Само изображение можно сохранить отдельно от текста. Щелчок по картинке не выделит текст всего элемента.
Текст будет скопирован без картинки . Само изображение можно сохранить отдельно от текста. Щелчок по картинке не выделит текст всего элемента.
Текст будет скопирован без картинки src="//4.bp.blogspot.com/-eJraU5lCufs/UFa8PpMUv8I/AAAAAAAADLQ/Y5SGHBd91-Q/s00/smail-bolshoi-palets-vverh.gif" alt="Смайлик «Большой палец вверх»" height="104" width="147" title="Отлично!"/>. Само изображение можно сохранить отдельно от текста. Щелчок по картинке не выделит текст всего элемента.
Свойство user-select у редактируемых элементов, таких как input , textarea
contenteditable -->contenteditable>Изменить меня сuser-select: auto;
contenteditable>Изменить меня сuser-select: all;
contenteditable>Изменить меня сuser-select: none;
Активные псевдоэлементы ::before и ::after
Нельзя выделить и скопировать содержимое псевдоэлементов.
Выделение текста для копирования CSS
Если скопировать выделенный текст вместе с изображением , то вместо картинки будет содержимое её атрибута alt . Само изображение можно сохранить отдельно от текста. Щелчок по картинке не выделит текст всего элемента.
Если скопировать выделенный текст вместе с изображением src="//4.bp.blogspot.com/-eJraU5lCufs/UFa8PpMUv8I/AAAAAAAADLQ/Y5SGHBd91-Q/s00/smail-bolshoi-palets-vverh.gif" alt="Смайлик «Большой палец вверх»" height="104" width="147" title="Отлично!"/>, то вместо картинки будет содержимое её атрибутаalt
. Само изображение можно сохранить отдельно от текста. Щелчок по картинке не выделит текст всего элемента.
Текст будет скопирован без картинки . Само изображение можно сохранить отдельно от текста. Щелчок по картинке не выделит текст всего элемента.
Текст будет скопирован без картинки src="//4.bp.blogspot.com/-eJraU5lCufs/UFa8PpMUv8I/AAAAAAAADLQ/Y5SGHBd91-Q/s00/smail-bolshoi-palets-vverh.gif" alt="Смайлик «Большой палец вверх»" height="104" width="147" title="Отлично!"/>. Само изображение можно сохранить отдельно от текста. Щелчок по картинке не выделит текст всего элемента.
Свойство user-select у редактируемых элементов, таких как input , textarea
contenteditable -->contenteditable>Изменить меня сuser-select: auto;
contenteditable>Изменить меня сuser-select: all;
contenteditable>Изменить меня сuser-select: none;
Активные псевдоэлементы ::before и ::after
Нельзя выделить и скопировать содержимое псевдоэлементов.
user-select¶
Свойство user-select управляет поведением выделения текста и других элементов на странице, в частности, позволяет запретить выделение текста.
Обычно применяется для интерактивных элементов, на которые можно щёлкать, например, вкладки, и для которых выделение текста нежелательно.
Демо¶
Синтаксис¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
/* Keyword values */ user-select: none; user-select: auto; user-select: text; user-select: contain; user-select: all; /* Global values */ user-select: inherit; user-select: initial; user-select: unset; /* Mozilla-specific values */ -moz-user-select: none; -moz-user-select: text; -moz-user-select: all; /* WebKit-specific values */ -webkit-user-select: none; -webkit-user-select: text; /* Doesn't work in Safari; use only "none" or "text", or else it will allow typing in the container */ -webkit-user-select: all; /* Microsoft-specific values */ -ms-user-select: none; -ms-user-select: text; -ms-user-select: element;
Значения¶
auto Для редактируемых элементов значение принимается contain . Если у родителя значение user-select установлено как all , то для элемента оно тоже будет all . Если у родителя значение user-select установлено как none , то для элемента оно тоже будет none . Во всех остальных случаях принимается значение text . none Пользователю запрещено выделять элемент. text Пользователь может выделить текст в элементе. all Позволяет выделить текст внутри элемента, включая дочерние элементы. contain Позволяет выделять текст, но только внутри границ элемента.
Примечание¶
- Internet Explorer поддерживает свойство -ms-user-select .
- Chrome, Opera, Safari и Android поддерживают свойство -webkit-user-select .
- Firefox поддерживает свойство -moz-user-select .
- Значение contain поддерживается только в IE.
Значение по-умолчанию: auto
Применяется ко всем элементам
Спецификации¶
Поддержка браузерами¶
Can I Use user-select-none? Data on support for the user-select-none feature across the major browsers from caniuse.com.
Описание и примеры¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
html> head> meta charset="utf-8" /> title>user-selecttitle> style> body -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; > .enable -ms-user-select: all; -moz-user-select: all; -webkit-user-select: all; user-select: all; > style> head> body> p>Этот текст нельзя выделитьp> p> input type="text" value="Этот текст можно выделить" /> p> p class="enable"> Этот b>текстb> тоже можно выделить p> body> html>
Запретить выделение текста (CSS)
Запретить выделение текста можно при помощи свойства CSS — user-select . Для старых браузеров необходимо подставлять префикс, у каждого браузера свой префикс.
-webkit-user-select — вебкит браузеры (Хром, Сафари);
user-select — для браузеров последних версий.
Но чтобы вы поняли, откуда возникает это превратное представление людей, порицающих наслаждение и восхваляющих страдания, я раскрою перед вами всю картину и разъясню, что именно говорил этот человек, открывший истину, которого я бы назвал зодчим счастливой жизни. Действительно, никто не отвергает, не презирает, не избегает наслаждений только из-за того, что это наслаждения, но лишь из-за того, что тех, кто не умеет разумно предаваться наслаждениям, постигают великие страдания. Равно как нет никого, кто возлюбил бы, предпочел и возжаждал бы само страдание только за то, что это страдание, а не потому, что иной раз возникают такие обстоятельства, когда страдания и боль приносят некое и немалое наслаждение. Если воспользоваться простейшим примером, то кто из нас стал бы заниматься какими бы то ни было тягостными физическими упражнениями, если бы это не приносило с собой некоей пользы? И кто мог бы по справедливости упрекнуть стремящегося к наслаждению, которое не несло бы с собой никаких неприятностей, или того, кто избегал бы такого страдания, которое не приносило бы с собой никакого наслаждения?
!DOCTYPE>
Категории
Читайте также
- Размер шрифта (CSS)
- CSS хак (IE7)
- CSS хак (IE8)
- div height 100 (CSS)
- Растянуть таблицу на всю ширину без отступов (CSS)
- Курсор рука (CSS)
- Ссылка без подчеркивания
- CSS меню картинками
- Как подключить CSS только для IE 6
- Lorem Ipsum по-русски
- Min-width для IE6
- Валидный HTML-тег HR