我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。

如果不是,我如何使用JavaScript禁用右键?


当前回答

你可以用JavaScript为"contextmenu"事件添加一个事件监听器,并调用preventDefault()方法:

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

也就是说:不要这么做。

为什么?因为它只会惹恼用户。此外,许多浏览器都有一个安全选项来禁止禁用右键(上下文)菜单。

不知道你为什么想这么做。如果是出于某种错误的信念,认为可以通过这种方式保护源代码或图像,请再想想:您不能这样做。

其他回答

有几件事需要考虑:

像chrome商店中“启用右键”这样的浏览器插件的存在是有原因的,你无法绕过它们。你根本无法阻止人们下载你的内容,因为他们必须下载你的内容才能在浏览器中看到;人们尝试,但它总是在那里。

一般来说,如果内容不应该公开,就不要放在网上。

此外,不能右击也是一个可访问性问题,在许多情况下相当于对盲人、残疾人或老年人的非法歧视。查看你当地的法律,但在美国,它以联邦ADA的形式积极反对法律,因为盲人或老年人可能有视力问题,是一个受法律保护的阶层。

所以与其这样做,浪费大量的时间和精力,还不如不要费心去做这个。这可能会让你的公司被起诉,或者让他们无法通过合规审计。

使用此功能可以禁用右键操作。你可以禁用左键点击也检查1和0对应

document.onmousedown = rightclickD;
            function rightclickD(e) 
            { 
                e = e||event;
                console.log(e);
                if (e.button == 2) {
                //alert('Right click disabled!!!'); 
                 return false; }
            }

试试这个

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

如果你的目标是阻止别人下载你的图片,就像大多数人说的那样,禁用右键几乎是无效的。

假设您正在尝试保护图像,替代方法是-

使用flash播放器,用户无法下载,但他们可以轻松地进行屏幕捕捉。

如果你想更笨拙,使图像的背景一个div,包含一个透明的图像,à la -

<div style="background-image: url(YourImage.jpg);">
   <img src="transparent.gif"/>
</div>

将足以阻止随意窃取您的图像(参见下面的示例),但与所有这些技术一样,如果对html有基本的了解,就很难击败它们。

如果不使用Javascript,您就无法完成您的要求。您可以选择使用的任何其他技术只能帮助在服务器端组成web页面,然后发送到浏览器。

没有好的解决方案,没有Javascript的解决方案周期。