我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
当前回答
简单的方法:
<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">
其他回答
如果你的目标是阻止别人下载你的图片,就像大多数人说的那样,禁用右键几乎是无效的。
假设您正在尝试保护图像,替代方法是-
使用flash播放器,用户无法下载,但他们可以轻松地进行屏幕捕捉。
如果你想更笨拙,使图像的背景一个div,包含一个透明的图像,à la -
<div style="background-image: url(YourImage.jpg);">
<img src="transparent.gif"/>
</div>
将足以阻止随意窃取您的图像(参见下面的示例),但与所有这些技术一样,如果对html有基本的了解,就很难击败它们。
如果不使用Javascript,您就无法完成您的要求。您可以选择使用的任何其他技术只能帮助在服务器端组成web页面,然后发送到浏览器。
没有好的解决方案,没有Javascript的解决方案周期。
简单的方法:
<body oncontextmenu="return false" onselectstart="return false" ondragstart="return false">
Javascript:
document.getElementsByTagName("html")[0].setAttribute("oncontextmenu", "return false");
我想添加一个注意(chrome 97),不确定这是否是与chrome或我的环境有关的bug。 右键单击我的应用程序的特定元素在一个新选项卡打开一个页面,使用鼠标下拉和oncontextmenu="返回false"我仍然有上下文菜单出现,甚至在新打开的页面上(只有安装的chrome扩展的菜单出现在上下文菜单上,我认为这个“bug”应该在未来版本的浏览器中得到修复)。
但与此同时,我用这个简单的hack修复了它
function onMouseDown () {
setTimeout(() => window.open('the link', '_blank'), 100)
}
我只是推迟开账单。我认为出现这个错误是因为右击被新打开的页面捕获,而不是从我的应用程序试图打开选项卡的原始页面捕获。
希望它能让你免于头痛。