Как отключить щелчок правой кнопкой мыши на моей веб-странице?



отключить правой кнопкой мыши на веб-странице без использования JavaScript? Я спрашиваю об этом, потому что большинство браузеров позволяют пользователю отключить JavaScript.



Если нет,то как я могу использовать JavaScript, чтобы отключить правый клик?

446   23  

23 ответов:

Вы можете сделать это с помощью JavaScript, добавив прослушиватель событий для события "contextmenu" и вызвав preventDefault() способ:

document.addEventListener('contextmenu', event => event.preventDefault());

плюсы: НЕ ДЕЛАЙ ЭТОГО.

почему? Потому что он не достигает ничего, кроме раздражающих пользователей. Также многие браузеры имеют функцию безопасности, чтобы запретить отключение Правой Кнопкой Мыши (контекстное меню) в любом случае.

Не знаю, почему вы хотите. Если это из-за какой-то неуместной веры, что вы можете защитите свой исходный код или изображения таким образом, подумайте еще раз: вы не можете.

НЕ

просто, нет.

неважно, что вы делаете, вы не можете запретить пользователям иметь полный доступ ко всей информации на вашем сайте. Любой код Javascript можно сделать спорным, просто отключив Javascript в браузере (или используя плагин, такой как NoScript). Кроме того, невозможно отключить возможность любого пользователя просто "просмотреть источник" или "просмотреть информацию о странице" (или использовать wget) для вашего сайта.

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

нет.

обновление: похоже, эта маленькая тема оказалась довольно противоречивой с течением времени. Тем не менее, я поддерживаю этот ответ на этот вопрос. Иногда правильный ответ-Это совет, а не буквальный ответ.

люди, которые наткнуться на этот вопрос в надеется узнать, как создать custom контекстные меню следует искать в другом месте, например, такие вопросы:

первоначальный вопрос был о том, как остановить Правой Кнопкой Мыши учитывая, что пользователь может отключить 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. Как, все, что вам нужно, это:

  1. рабочая оборудование

  2. веб-сайт или где-то, из которого вы можете узнать о кодах ключей. Потому что они тебе понадобятся.

теперь давайте скажем, что вы хотите заблокировать клавишу enter нажмите вот код:

function prevententer () {
 if(event.keyCode == 13) {
  return false;
 }
}

для правой кнопки мыши используйте это:

event.button == 2

вместо event.keyCode. И вы его заблокируете.

Я хочу спросить это, потому что большинство браузеров позволяют пользователям отключить его Яваскрипт.

вы правы, браузеры позволяют использовать JavaScript и JavaScript делает всю работу за вас. Вам не нужно ничего настраивать, просто нужен атрибут сценарий в голове.

почему вы не должны отключить его?

главным и быстрым ответом на это было бы,не нравится. Всем нужна свобода, никто я имею в виду никто не хочет быть заблокированным или отключенным, несколько минут назад я был на сайте, который заблокировал меня от щелчка правой кнопкой мыши и я почувствовал, почему? Вам нужно защитить свой исходный код? Тогда вот ctrl+shift+J Я открыл Console и теперь я могу пойти к HTML-code tab. Давай, останови меня. Это не добавит никакого уровня безопасности в ваше приложение.

есть много пользовательских меню в Правой Кнопкой Мыши, как Копировать, Вставить, поиск Google для "текста" (в Chrome) и многое другое. Таким образом, пользователь хотел бы получить легкий доступ вместо того, чтобы помнить много сочетаний клавиш. Любой человек все еще может скопировать контекст, сохраните изображение или делайте все, что он хочет.

браузеры используют навигацию мыши: некоторые браузеры, такие как Опера использует навигацию мыши, так что если вы отключите его, пользователь определенно будет ненавидеть ваш пользовательский интерфейс и скрипты.

так что это было основное, я собирался написать еще немного о сохранении исходного кода хехехе, но пусть это будет ответ на ваш вопрос.

ссылка на коды:

клавиша и мышь код кнопки:

http://www.w3schools.com/jsref/event_button.asp

https://developer.mozilla.org/en-US/docs/Web/API/event.button (было бы оценено пользователями тоже).

почему бы не отключить щелчок правой кнопкой мыши:

http://www.sitepoint.com/dont-disable-right-click/

Если вы используете jQuery, вы можете попробовать этот код:

$(document).bind("contextmenu", function (event) {
  event.preventDefault();
));

проверьте это: http://www.landcoder.com/4-dynamic-interactive-code-snippets-jquery-705#disablerightclick

Javascript:

document.getElementsByTagName("html")[0].setAttribute("oncontextmenu", "return false"); 

Важное Замечание: Это зависит от того обозреватель и OS допускать такую профилактику или нет!

должны ты это делаешь?нет. Потому что это не помешает пользователю, но это будет просто раздражать его/ее.

вы можете использовать его?да. Примеры: в некоторых веб-приложениях, где вы хотите настроить всплывающее меню, в игре, где пользователи могут быть недовольны, когда они ошибочно щелкните правой кнопкой мыши и другие случаи.

Chrome (v65) в Ubuntu 16.04 = You можете отключить Правой Кнопкой Мыши.

Chrome (v65) в Mac OS 10.11 = You НЕ МОГУ отключить Правой Кнопкой Мыши.

Chrome (v65) в Windows 7 = You НЕ МОГУ отключить Правой Кнопкой Мыши.

Firefox (v41) в Mac OS 10.11 = You можете отключить Правой Кнопкой Мыши.

Firefox (v43) в Windows 7 = You можете отключить правый клик.

// 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>

Comments

    Ничего не найдено.