问题描述
我正在尝试禁用滚动条上的右键单击操作或删除我页面上右键单击菜单窗口中的“检查元素”选项。我正在使用以下代码来满足我的要求。但是它遇到了一个我无法找到的问题,也没有想到其他解决方案。请在下面找到我的示例代码。请感谢任何帮助。
Sample Application - 使用此链接您可以检查代码。
<html oncontextmenu="return false;">
<head>
<style>
</style>
<script >
document.onkeypress = function (event) {
event = (event || window.event);
return keyFunction(event);
}
document.onmousedown = function (event) {
event = (event || window.event);
return keyFunction(event);
}
document.onkeydown = function (event) {
event = (event || window.event);
return keyFunction(event);
}
//disable right click script
var message="Sorry,right-click has been disabled";
function clickIE() {if (document.all) {(message);return false;}}
function clickNS(e) {if
(document.layers||(document.getElementById&&!document.all)) {
if (e.which==2||e.which==3) {(message);return false;}}}
if (document.layers)
{document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
document.oncontextmenu=new Function("return false")
function keyFunction(event){
//"F12" key
if (event.keyCode == 123) {
return false;
}
if (event.ctrlKey && event.shiftKey && event.keyCode == 73) {
return false;
}
//"J" key
if (event.ctrlKey && event.shiftKey && event.keyCode == 74) {
return false;
}
//"S" key
if (event.keyCode == 83) {
return false;
}
//"U" key
if (event.ctrlKey && event.keyCode == 85) {
return false;
}
//F5
if (event.keyCode == 116) {
return false;
}
}
</script>
</head>
<body >
<iframe style="width:100%" height="473" src="https://africau.edu/images/default/sample.pdf#toolbar=0"></iframe>
<div style="width:96%;height:473px;background-color:transparent;position:absolute;top:0px;max-width: 100%;">
</body>
</html>
解决方法
右键单击默认行为是触发 contextmenu
事件,其默认行为是显示上下文菜单。
为了防止这种默认行为,请写下:
document.addEventListener('contextmenu',e => e.preventDefault());
请注意,它不会阻止人们使用 F12 访问开发者工具,您对此无能为力。