- Защита текста статьи от копирования
- Java-скрипт для запрета копирования
- HTML-разметка для запрета копирования
- Использование стилей CSS
- Атрибут unselectable
- Свойство слоев z-index
- Стилевое свойство user-select
- Вместо послесловия
- Как запретить контекстное меню (правую кнопку мыши) на изображениях. 4 способа.
- Способ 1. При помощи JavaScript
- Способ 2. Задействуем jQuery, тем самым сократив код
- Способ 3. При помощи CSS
- Запрет контекстного меню на конкретных изображениях при помощи HTML-атрибута
- Миша
- Как отключить выбор текста, копирование, вырезание, вставку и правый щелчок мыши на веб-странице
- Как отключить выбор текста с помощью CSS
- Пример
- Как отключить выбираемость текста с помощью JavaScript
- Пример
- Как отключить копирование, вырезание и вставку с помощью JavaScript/jQuery
- Пример
- Пример
- Как отключить правый щелчок мыши с помощью JavaScript/jQuery
- Пример
- Пример
Защита текста статьи от копирования
Полная подборка несложных методов защиты от копирования текста вашей статьи на сайте. Как учебный материал, описанные методы будут весьма полезны и познавательны, но для искушенного пользователя все эти методы будут весьма мало эффективны, хотя и несколько затруднят процесс нежелательного копирования вашего текста.
Предложенные ниже способы в основном базируются на методе всяческих запретов: запрета выделения текста, запрета копирования уже выделенного текста, запрета вызова контекстного меню и других методах.
Java-скрипт для запрета копирования
Коротенький Java-скрипт позволяет на выбор запретить вызов контекстного меню и запретить перетаскивание или выделение элементов. Для применения метода достаточно поместить код скрипта в заголовке страницы между тегами : можно использовать все, можно только соответствующие вашим целям строки скрипта.
document.ondragstart = noselect; // запрет на перетаскивание document.onselectstart = noselect; // запрет на выделение элементов страницы document.oncontextmenu = noselect; // запрет на выведение контекстного меню function noselect()
HTML-разметка для запрета копирования
Метод защиты аналогичен способу с Java-скриптом, только на чистом HTML. Точно так же направлен на отключение контекстного меню, запрет на выделение и копирование. Указанные атрибуты можно использовать как по одному, так и в комбинации. Присваивать возможно как отдельным блокам , так и всей странице . Сохраняет функциональность при отключении выполнения скриптов в броузере. Не работает в Opera.
Абзац 1: oncopy - запрет копирования
Абзац 2: oncontextmenu - запрет контекстного меню
Абзац 3: onselectstart - запрет выделения
или для все страницы целиком
Абзац 1: oncopy - запрет копирования
Абзац 2: oncontextmenu - запрет контекстного меню
Абзац 3: onselectstart - запрет выделения
.
Использование стилей CSS
Атрибут unselectable
Достаточно поместить текст в блок с атрибутом unselectable , и текст будет защищен от выделение текста в именно ВНУТРИ этого блока, однако ничто не помешает его выделить, если начинать выделение ДО этого блока. Метод не работает в Mozila Firefox.
Текст c запретом выделения
Свойство слоев z-index
Суть метода заключается в помещении в самом верхнем слое перед текстом прозрачного изображения – текст за рисунком будет виден, но “подцепить” мышкой его для выделения не удастся.
Стилевое свойство user-select
Еще один способ отключить возможность выделить чтщ-либо на странице. Прежде всего необходимо определить либо в CSS, либо в самой страничке, класс, которому будет присвоено свойство блокировать возможность выделить что-либо на странице, например, назовем его .noselect и присвоим ему свойство user-select: none . Присвойте этот класс конкретному блоку, либо всей странице, либо заверните защищаемую часть страницы в блок с этим классом.
.noselectАбзац 1 текста, защищенного от возможности выделить
Абзац 2 текста, защищенного от возможности выделить
Вместо послесловия
Все перечисленные в статье методы защиты текста от копирования просты, но и в тоже время настолько же и малоэффективны. Подобные “чисто технические” ухищрения вызовут только кривенькую ухмылку у “профи” копирайтинга и неподдельное раздражение у простого пользователя. Единственный “надежный” способ чисто технически защитить информацию от копирования – это просто отказаться от ее публикации в открытых источниках. Чтобы понять, это достаточно ознакомиться с тем, насколько легко скопировать текст с «защищенного» сайта. Если уж вы решили опубликовать что-то для людей, то пусть на здоровье пользуются – копируют себе в заметки, мемуары или куда еще хотят для личного пользования. Другое дело, если ваш труд выдают за свой в своих личных меркантильных интересах. Что бы такой номер не прошел или его отрицательный эффект для вас сказался в наименьшей степени нужно задуматься о том, как организовать защиту контента от воровства – об этом наш следующий мой рассказ.
Как запретить контекстное меню (правую кнопку мыши) на изображениях. 4 способа.
Прежде всего вы должны знать, что запрет контекстного меню не гарантирует вам того, что пользователь не сможет сохранить картинку к себе на комп. Даже если он не знает, как отключать JavaScript, он сможет воспользоваться инструментами для разработчика в браузере или какой-нибудь сторонней программкой для создания скриншотов.
Тем не менее, причины для запрета контекстного меню могут быть другими, и мы всё равно рассмотрим несколько способов.
Способ 1. При помощи JavaScript
В данном случае всё, что нам потребуется, это вставить следующий код в ваш исполняемый js-файл или между тегами прямо в тело документа.
Имейте ввиду, что если вы вставите код в конец HTML-документа, то запрет на контекстное меню сработает не сразу, а только по мере подгрузки страницы. Это будет хорошо ощутимо с медленным интернет-соединением.
function disablecontext(e) { var clickedEl = (e==null) ? event.srcElement.tagName : e.target.tagName; if (clickedEl == "IMG") { alert(errorMsg); return false; } } var errorMsg = "Вы не можете сохранять изображения с этого сайта."; document.oncontextmenu = disablecontext;
Способ 2. Задействуем jQuery, тем самым сократив код
Думаю, что не нужно напоминать, что прежде всего у вас должна быть подключена библиотека jQuery. Но только ради этого подключать её само собой не стоит, лучше уж воспользуйтесь первым способом.
$('img').bind('contextmenu', function(e) { return false; });
Способ 3. При помощи CSS
Интересный способ. Отлично подойдёт для элементов интерфейса и не сгодится для изображений в контенте сайта (плохо для SEO — такие изображения не увидят поисковики).
Итак, предположим, у нас есть какое-то изображение:
img src="http://truemisha.com/image.png" width="32" height="55" />
Теперь, вместо этой строчки вставляем блок , добавляем ему атрибут ID (например my_image) и приписываем следующие стили:
div#my_image{ width: 32px; height: 55px; background: url('http://truemisha.com/image.png') 0 0 no-repeat; }
В результате, хоть контекстное меню и не исчезнет полностью, из него пропадут такие пункты, как «Сохранить картинку как…» и «Копировать URL картинки». Пример для Google Chrome:
Запрет контекстного меню на конкретных изображениях при помощи HTML-атрибута
Данный способ актуален при использовании для определённых изображений.
img oncontextmenu='alert("Вы не можете сохранить это изображение.");return false;' border="0" src="http://truemisha.com/image.png" />
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.
Как отключить выбор текста, копирование, вырезание, вставку и правый щелчок мыши на веб-странице
Иногда может быть очень полезно воспрепятствование выбору некоторых частей веб-страницы.
Так как неприятно, когда user-selection отключен, будет лучше применить ограничения не для всей всей веб-страницы. Вместо этого отключите выбор текста для тех частей или определенных артиклей, которые, вы думаете, могут быть украдены. Используйте в случаях, если это поможет усовершенствовать UX вашей веб-страницы.
Независимо от того, какая у вас причина для отключения user-selection, если вы пришли к этому, то находитесь в правильном месте, чтобы изучить все это с помощью CSS, Javascript и jQuery.
Как отключить выбор текста с помощью CSS
Отключение выбора текста не так уж сложно. Вам всего лишь необходимо отключить выбираемость текста для всех браузеров, где высока вероятность загрузки вашей веб-страницы.
Давайте посмотрим, какие расширения нужно использовать в разных браузерах для отключения выбираемости текста.
- Chrome, Opera (older versions), IOS Safari: -webkit-user-select
- Safari: -webkit-touch-callout
- Mozilla: -moz-user-select
- Internet Explorer, Edge: -ms-user-select
- KHTML browsers (Konqueror): -khtml-user-select
Chrome (начиная с 54.0 версии) и Opera (начиная с 41.0 версии) поддерживают user-select без префикса -webkit-.
Пример
html> html> head> title>Заголовок документа title> style> .unselectable < -webkit-user-select: none; -webkit-touch-callout: none; -moz-user-select: none; -ms-user-select: none; user-select: none; color: #cc0000; > style> head> body> p>Это выбираемый текст. Выберите текст. p> div class="unselectable">Это невыбираемый текст. Выбираемость текста отключена. div> body> html>
Если вам необходимо отключить выбираемость текста для всей страницы, примените user-select к элементу .
Как отключить выбираемость текста с помощью JavaScript
Пример
html> html> head> title>Заголовок документа title> head> body onmousedown="return false" onselectstart="return false"> h2>Unselectable text h2> p>Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне. Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, используя Lorem Ipsum для распечатки образцов. Lorem Ipsum не только успешно пережил без заметных изменений пять веков, но и перешагнул в электронный дизайн. Его популяризации в новое время послужили публикация листов Letraset с образцами Lorem Ipsum в 60-х годах и, в более недавнее время, программы электронной вёрстки типа Aldus PageMaker, в шаблонах которых используется Lorem Ipsum. p> body> html>
Как отключить копирование, вырезание и вставку с помощью JavaScript/jQuery
Можно разрешить выбор текста, но запретить функции копирования и вырезания с помощью event атрибутов oncopy , oncut и onpaste . При помощи добавления этих атрибутов в тег текстового поля можно отключить функции вырезания, копирования и вставки. Пользователь имеет возможность ввести в поле вручную, когда установлены эти атрибуты.
Пример
html> html> head> title>Заголовок документа title> head> body> h2>Копирование, вырезание и вставка отключены h2> input type="text" onselectstart="return false" onpaste="return false;" onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false" autocomplete=off/>br> body> html>
Можно иметь такой же эффект с помощью jQuery функции bind(), указывающий события cut и copy, которые срабатывают, когда пользователь вырезает или копирует текст.
Пример
html> html> head> title>Заголовок документа title> head> body> h2>Копирование и вырезание отключены h2> p>Невозможно скопировать или вырезать этот текст. p> script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> script> script type="text/javascript"> $(document).ready(function ( ) < $('body').bind('cut copy', function (e) < e.preventDefault(); >); >); script> body> html>
Как отключить правый щелчок мыши с помощью JavaScript/jQuery
Для того, чтобы отключить правый щелчок на странице, нужно добавить событие oncontextmenu и «return false» в обработчике событий. Таким образом, вы заблокируете доступ с помощью правого щелчка мыши к контекстному меню.
Пример
html> html> head> title>Заголовок документа title> head> body> h2>Копирование и вырезание отключены h2> p>Невозможно скопировать или вырезать этот текст. p> script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> script> script type="text/javascript"> $(document).ready(function ( ) < $('body').bind('cut copy', function (e) < e.preventDefault(); >); >); script> body> html>
Используйте jQuery функцию bind() для отключения правого щелчка мыши. Этот метод отключает правый щелчок (контекстное меню) в текстовом поле, а также предупреждает пользователю с помощью всплывающего сообщения.
Пример
html> html> head> title>Заголовок документа title> head> body> h2>Правый щелчок отключен h2> p>Для этой страницы правый щелчок отключен. p> script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"> script> script type="text/javascript"> $(document).ready(function ( ) < $("body").on("contextmenu",function(e)< return false; >); >); script> body> html>
Запомните, что невозможно стопроцентно воспрепятствовать извлечению текста из вашего документа, так как есть много способов получения контента веб-страницы, например, консоль разработчика.