Как отключить щелчок правой кнопкой мыши на моей веб-странице?
отключить правой кнопкой мыши на веб-странице без использования JavaScript? Спрашиваю это потому, что большинство браузеров позволяют пользователю отключить JavaScript.
Если нет, как использовать JavaScript для отключения щелчка правой кнопкой мыши?
23 ответов
Вы можете сделать это с помощью JavaScript, добавив прослушиватель событий для события "contextmenu" и вызвав preventDefault()
способ:
document.addEventListener('contextmenu', event => event.preventDefault());
плюсы: НЕ ДЕЛАЙ ЭТОГО.
почему? Потому что он не достигает ничего, кроме раздражающих пользователей. Также многие браузеры имеют функцию безопасности, чтобы запретить отключение Правой Кнопкой Мыши (контекстное меню) в любом случае.
Не уверен, почему вы хотите. Если это из-за какой-то неуместной веры, что ты можешь ... защитите свой исходный код или изображения таким образом, подумайте еще раз: вы не можете.
НЕ
просто не надо.
неважно, что вы делаете, вы не можете запретить пользователям иметь полный доступ ко всей информации на вашем сайте. Любой код Javascript можно сделать спорным, просто отключив Javascript в браузере (или используя плагин, такой как NoScript). Кроме того, нет способа отключить возможность любого пользователя просто "просмотреть источник" или "просмотреть информацию о странице" (или использовать wget) для вашего сайта.
Это не стоит усилий. Это не сработает. Это сделает ваш сайт активно враждебным пользователям. Они заметят это и перестанут навещать. В этом нет никакой пользы, только напрасные усилия и потерянный трафик.
нет.
обновление: Кажется, эта небольшая тема оказалась довольно спорной с течением времени. Тем не менее, я поддерживаю этот ответ на этот вопрос. Иногда правильный ответ-Это совет, а не буквальный ответ.
люди, которые наткнуться на этот вопрос в надежды узнать, как создать таможни контекстные меню должны выглядеть в другом месте, например, такие вопросы:
- создание пользовательских контекстных меню правой кнопкой мыши для моего веб-приложения, который полагается на jQuery
- как добавить пользовательское меню на веб-страницы, который использует чистый javascript / html
первоначальный вопрос был о том, как остановить щелчок правой кнопкой мыши учитывая, что пользователь может отключить JavaScript: что звучит гнусно и зло (отсюда и отрицательные ответы) - но все дубликаты перенаправляются сюда, хотя многие из дубликатов просят менее злых целей.
например, с помощью правой кнопки мыши в играх HTML5. Это можно сделать с помощью встроенного кода выше, или немного приятнее что-то вроде этого:
document.addEventListener("contextmenu", function(e){
e.preventDefault();
}, false);
а если вы делаем игру, то помните, что Правой Кнопкой Мыши кнопка срабатывает contextmenu событие - но он также запускает регулярные mousedown и mouseup с слишком событий. Поэтому вам нужно проверить событие , который свойство, чтобы увидеть, был ли это левый (который === 1), средний (который === 2) или правый (который === 3) кнопка мыши, которая запускает событие.
вот пример в jQuery - обратите внимание, что нажатие правой кнопки мыши будет срабатывать три события: событие mousedown, событие contextmenu и событие mouseup.
// With jQuery
$(document).on({
"contextmenu": function(e) {
console.log("ctx menu button:", e.which);
// Stop the context menu
e.preventDefault();
},
"mousedown": function(e) {
console.log("normal mouse down:", e.which);
},
"mouseup": function(e) {
console.log("normal mouse up:", e.which);
}
});
поэтому, если вы используете левую и правую кнопки мыши в игре, вам придется сделать некоторую условную логику в обработчиках мыши.
Если вы не заботитесь о предупреждении пользователя с сообщением каждый раз, когда они пытаются щелкнуть правой кнопкой мыши, попробуйте добавить это в свой тег тела
<body oncontextmenu="return false;">
это заблокирует весь доступ к контекстному меню (не только с правой кнопки мыши, но и с клавиатуры).
однако, как упоминалось в других ответах, на самом деле нет смысла добавлять правый клик disabler. Любой человек с базовыми знаниями браузера может просматривать источник и извлекать информацию, которую они необходимость.
Если вы поклонник jquery, используйте это
$(function() {
$(this).bind("contextmenu", function(e) {
e.preventDefault();
});
});
Если ваша цель состоит в том, чтобы предотвратить людей, способных загружать ваши изображения, как большинство людей сказали, отключение правой кнопкой мыши в значительной степени неэффективно.
предполагая, что вы пытаетесь защитить изображения, альтернативные методы -
используя flash player, пользователи не могут загружать их как таковые, но они могут легко сделать захват экрана.
Если вы хотите быть более akward, сделайте изображение фоном div, содержащим прозрачное изображение, à la -
<div style="background-image: url(YourImage.jpg);">
<img src="transparent.gif"/>
</div>
будет достаточно, чтобы предотвратить случайную кражу ваших изображений (см. ниже для примера), но, как и во всех этих методах, тривиально победить с базовым пониманием html.
во-первых, вы не можете достичь этого без использования возможности на стороне клиента. Здесь работает javascript.
во-вторых, если вы пытаетесь контролировать, что конечный пользователь может потреблять с вашего сайта, Вам нужно переосмыслить, как вы отображаете эту информацию. Изображение имеет общедоступный url-адрес, который можно получить через HTTP без необходимости в браузере.
аутентификация может контролировать, кто имеет доступ к каким ресурсам.
врезанный водяной знак в изображениях может докажите, что изображение было от конкретного человека / компании.
в конце концов, управление ресурсами-это действительно управление пользователями / гостями.
первое правило интернета, Если вы не хотите его принимать, не делают это публично!
второе правило интернета, Если вы не хотите, чтобы его взяли, не ставьте его в Интернете!
вы не можете выполнить то, что просите, без использования Javascript. Любая другая технология, которую вы можете использовать, может помочь только составить веб-страницу на стороне сервера для отправки в браузер.
просто нет хорошего решения, и нет периода решения без Javascript.
Если ваша цель-запретить пользователям просто сохранять ваши изображения, вы также можете проверить, является ли щелкнутая цель изображением, только отключите правый щелчок в этом случае. Таким образом, щелчок правой кнопкой мыши может быть использован для других целей. Взято из кода выше:
document.addEventListener("contextmenu", function(e){
if (e.target.nodeName === "IMG") {
e.preventDefault();
}
}, false);
Это просто, чтобы забрать самый простой способ сохранения изображений, но это все еще может быть сделано.
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.4.4.min.js'></script>
<script type='text/javascript'>//<![CDATA[
$(function(){
$('img').bind('contextmenu', function(e){
return false;
});
});//]]>
</script>
</head>
<body>
<img src="http://www.winergyinc.com/wp-content/uploads/2010/12/ajax.jpg"/>
</body>
сделайте это, как показано ниже (он также работает в firefox):
$(document).on("contextmenu",function(e){
if( e.button == 2 ) {
e.preventDefault();
callYourownFucntionOrCodeHere();
}
return true;
});
конечно, согласно всем другим комментариям здесь, это просто не работает.
Я однажды построил простой Java-апплет для клиента, который заставил любой захват изображения выполняться с помощью захвата экрана, и вы могли бы рассмотреть аналогичную технику. Это сработало, в пределах ограничений, но я все еще думаю, что это была пустая трата времени.
поместите этот код в свой <head>
тег вашей страницы.
<script type="text/javascript">
function disableselect(e){
return false
}
function reEnable(){
return true
}
//if IE4+
document.onselectstart=new Function ("return false")
document.oncontextmenu=new Function ("return false")
//if NS6
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}
</script>
это отключит щелчок правой кнопкой мыши на всей веб-странице, но только если включен JavaScript.
отключить правой кнопкой мыши на сайте :
<body oncontextmenu="return false">
или следующий метод :
<style>
body {
-webkit-user-select: none; /* Chrome all / Safari all */
-o-user-select: none;
user-select: none;
-webkit-touch-callout:none;
}
</style>
<script>
window.oncontextmenu = function () {
console.log("Right Click Disabled");
return false;
}
</script>
Попробуй Такое
<script language=JavaScript>
//Disable right mouse click Script
var message="Function Disabled!";
function clickIE4(){
if (event.button==2){
alert(message);
return false;
}
}
function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
alert(message);
return false;
}
}
}
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}
document.oncontextmenu=new Function("alert(message);return false")
</script>
отключение правой кнопкой мыши на веб-странице просто. Есть всего несколько строк кода JavaScript, которые сделают эту работу. Ниже приведен код JavaScript:
$("html").on("contextmenu",function(e){
return false;
});
в приведенном выше коде я выбрал тег. После того, как вы добавите только эти три строки кода, он отключит щелчок правой кнопкой мыши на вашей веб-странице.
источник: отключить Правой Кнопкой Мыши, копировать, вырезать на веб-странице с помощью jQuery
$(document).ready(function () {
document.oncontextmenu = document.body.oncontextmenu = function () { return false; }
});
Я знаю, что опоздал, но я хочу создать некоторые предположения и объяснения для ответа, который я собираюсь предоставить.
могу ли я отключить щелчок правой кнопкой мыши
отключить правой кнопкой мыши на веб-странице без использования JavaScript?
да, с помощью JavaScript вы можете отключить любое событие, которое происходит, и вы можете сделать это в основном только с помощью javaScript. Как, все, что вам нужно:
рабочая оборудование
веб-сайт или где-то, из которого вы можете узнать о кодах ключей. Потому что они тебе понадобятся.
теперь давайте скажем, что вы хотите заблокировать клавишу enter нажмите вот код:
function prevententer () {
if(event.keyCode == 13) {
return false;
}
}
для правой кнопки мыши используйте это:
event.button == 2
вместо event.keyCode
. И вы его заблокируете.
Я хочу спросить это, потому что большинство браузеров позволяют пользователям отключить его Яваскрипт.
вы правы, браузеры позволяют использовать JavaScript
и JavaScript делает всю работу за вас. Вам не нужно ничего настраивать, просто нужен атрибут сценарий в голове.
почему вы не должны отключить его?
основной и быстрый ответ на это будет,не нравится. Всем нужна свобода, никто, я имею в виду, никто не хочет быть заблокированным или отключенным, несколько минут назад я был на сайте, который заблокировал меня от щелчка правой кнопкой мыши и я почувствовал, почему? Вам нужно защитить исходный код? Тогда вот!--4--> Я открыл Console
и теперь я могу пойти к HTML-code
tab. Давай, останови меня. Это не добавит какой-либо уровень безопасности в ваше приложение.
есть много полезных меню в Правой Кнопкой Мыши, как Копировать, Вставить, поиск Google для " текста "(в Chrome) и многое другое. Таким образом, пользователь хотел бы получить легкость доступа вместо того, чтобы помнить много сочетаний клавиш. Любой может скопировать контекст, сохраните изображение или сделайте все, что он хочет.
браузеры используют навигацию мыши: некоторые браузеры, такие как Опера использует навигацию мыши, поэтому, если вы ее отключите, пользователь определенно возненавидит ваш пользовательский интерфейс и скрипты.
Итак, это было основное, я собирался написать еще немного о сохранении исходного кода hehehe, но, пусть это будет ответ на ваш вопрос.
ссылка на коды:
клавиша и мышь код кнопки:
http://www.w3schools.com/jsref/event_button.asp
https://developer.mozilla.org/en-US/docs/Web/API/event.button (было бы оценено пользователями тоже).
почему бы не отключить щелчок правой кнопкой мыши:
Если вы используете jQuery, вы можете попробовать этот код:
$(document).bind("contextmenu", function (event) {
event.preventDefault();
));
проверьте это: http://www.landcoder.com/4-dynamic-interactive-code-snippets-jquery-705#disablerightclick
Важное Замечание: Это зависит от того обозреватель и OS разрешить такую профилактику или нет!
должны ты это делаешь? нет. Потому что это не помешает пользователю, но это только раздражает его/ее.
вы можете использовать его? да. Примеры: в некоторых веб-приложениях, где вы хотите настроить всплывающее меню, в игре, где пользователи могут быть недовольны, когда они ошибочно щелкните правой кнопкой мыши и другие случаи.
Chrome (v65) в Ubuntu 16.04 = вы CAN отключить Правой Кнопкой Мыши.
Chrome (v65) в Mac OS 10.11 = вы НЕ МОГУ отключить Правой Кнопкой Мыши.
Chrome (v65) в Windows 7 = Вы НЕ МОГУ отключить Правой Кнопкой Мыши.
Firefox (v41) в Mac OS 10.11 = вы CAN отключить Правой Кнопкой Мыши.
в Firefox (v43) в Windows 7, Вы= CAN отключить правый клик.
// JS way
document.addEventListener('contextmenu', function(e){
e.preventDefault();
});
// jQuery way
$(document).bind('contextmenu', function(e) {
e.preventDefault();
});
я использовал этот код, чтобы отключить щелчок правой кнопкой мыши на любой веб-странице, его работа в порядке. Вы можете использовать этот код
jQuery(document).ready(function(){
jQuery(function() {
jQuery(this).bind("contextmenu", function(event) {
event.preventDefault();
alert('Right click disable in this site!!')
});
});
});
<html>
<head>
<title>Right click disable in web page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
You write your own code
</body>
</html>