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

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


当前回答

如果你的目标是不允许用户简单地保存你的图像,你也可以检查点击的目标是否为图像,只在这种情况下禁用右键。所以右键可以用于其他目的。从上面的代码:

document.addEventListener("contextmenu", function(e){
    if (e.target.nodeName === "IMG") {
        e.preventDefault();
    }
}, false);

这只是拿走了保存图像的最简单的方法,但它仍然可以做到。

其他回答

重要提示:这取决于浏览器和操作系统是否允许这样的预防!

你应该这么做吗?不。因为它不会阻止用户,但它只会惹恼他/她。

你会用吗?是的。例子:在某些网页应用中,你想要定制弹出菜单,在游戏中,用户可能会因为错误地单击右键而感到恼火,以及其他情况。

Ubuntu 16.04中的Chrome (v65) =您可以禁用右键单击。

Chrome (v65)在Mac OS 10.11 =你不能禁用右键。

Chrome (v65)在Windows 7 =你不能禁用右键。

Mac OS 10.11中的Firefox (v41) =您可以禁用右键单击。

Windows 7中的Firefox (v43) =您可以禁用右键单击。

// Vanilla JS way
document.addEventListener('contextmenu', function(e){
    e.preventDefault();
});

// jQuery way
$(document).bind('contextmenu', function(e) {
    e.preventDefault();
});

下面有三种最流行的方法来禁用在网页上单击鼠标右键。

#1使用HTML正文标签

<body oncontextmenu="return false;">

#2使用CSS

body {
    -webkit-user-select: none;  /* Chrome all / Safari all */
    -moz-user-select: none;     /* Firefox all */
    -ms-user-select: none;      /* IE 10+ */
    -o-user-select: none;
    user-select: none;
}

#3使用JavaScript

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

使用此功能可以禁用右键操作。你可以禁用左键点击也检查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>
        window.oncontextmenu = function () {
            console.log("Right Click Disabled");
            return false;
        }
    </script>

有几件事需要考虑:

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

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

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

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