我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
我可以禁用右击在我的网页不使用JavaScript?我问这个问题是因为大多数浏览器允许用户禁用JavaScript。
如果不是,我如何使用JavaScript禁用右键?
当前回答
像下面这样做(它也适用于firefox):
$(document).on("contextmenu",function(e){
if( e.button == 2 ) {
e.preventDefault();
callYourownFucntionOrCodeHere();
}
return true;
});
其他回答
我知道我迟到了,但我想为我将要提供的答案创建一些假设和解释。
我可以禁用右键吗?
我可以禁用右击在我的网页不使用Javascript?
是的,通过使用JavaScript,你可以禁用任何发生的事件,你可以只通过JavaScript做到这一点。你只需要:
工作硬件 一个网站或其他地方,你可以从那里了解密钥代码。因为你会需要他们。
现在假设你想阻止回车键这里是代码:
function prevententer () {
if(event.keyCode == 13) {
return false;
}
}
右击使用这个:
event.button == 2
在event.keyCode的位置。你会阻止它。
我想问这个问题是因为大多数浏览器允许用户通过Javascript禁用它。
你是对的,浏览器允许你使用JavaScript, JavaScript为你做了所有的工作。你不需要设置任何东西,只需要在头部的脚本属性。
为什么不应该禁用它?
最主要和最快速的答案是,用户不会喜欢它。每个人都需要自由,没有人我的意思是没有人想被屏蔽或禁用,几分钟前我在一个网站上,它阻止了我的右键点击,我想为什么?您需要保护源代码吗?然后这里按ctrl+shift+J,我已经打开了控制台,现在我可以去HTML-code选项卡。来阻止我吧。这不会给你的应用程序添加任何安全层。
有很多有用的菜单在右键单击,如复制,粘贴,搜索谷歌的“文本”(在Chrome中)和更多。因此,用户希望获得方便的访问,而不是记住大量的键盘快捷键。任何人仍然可以复制上下文,保存图像或做任何他想做的事情。
浏览器使用鼠标导航:一些浏览器如Opera使用鼠标导航,所以如果你禁用它,用户肯定会讨厌你的用户界面和脚本。
所以这是基本的,我打算写一些关于保存源代码的东西,呵呵,但是,让它成为你问题的答案。
键码参考:
按键和鼠标按键代码:
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/
不
只是,不知道。
无论你做什么,你都不能阻止用户完全访问你网站上的每一点数据。你所编写的任何Javascript代码都可以通过关闭浏览器上的Javascript(或者使用NoScript这样的插件)而变得毫无意义。此外,没有办法禁用任何用户仅仅“查看源代码”或“查看页面信息”(或使用wget)的功能。
不值得这么费劲。这实际上是行不通的。它会让你的网站对用户充满敌意。他们会注意到这一点,并停止访问。这样做没有任何好处,只会浪费精力和损失流量。
不喜欢。
更新:随着时间的推移,这个小话题似乎已经被证明是相当有争议的。即便如此,我仍然坚持这个问题的答案。有时正确的答案是建议,而不是字面上的回答。
那些无意中发现这个问题并希望找到如何创建自定义上下文菜单的人应该看看其他地方,比如这些问题:
为我的web应用程序制作自定义右键上下文菜单,这依赖于jQuery 如何添加一个自定义右键菜单的网页,这使用纯javascript/html
如果你是jquery迷,就用这个吧
$(function() {
$(this).bind("contextmenu", function(e) {
e.preventDefault();
});
});
$(document).ready(function () {
document.oncontextmenu = document.body.oncontextmenu = function () { return 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>