Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何禁用右键单击IFRAME_Javascript_Jquery_Html_Iframe_Model View Controller - Fatal编程技术网

Javascript 如何禁用右键单击IFRAME

Javascript 如何禁用右键单击IFRAME,javascript,jquery,html,iframe,model-view-controller,Javascript,Jquery,Html,Iframe,Model View Controller,我在MVC web应用程序的IFrame上显示了一个文档内容。内容不得复制和打印。我尝试使用Iframe的两个函数style=“pointer events:none;”oncontextmenu=“return false”禁用右键单击,这两个函数工作正常。 但在右键单击时,将显示带有“图幅源”、“视图源”的弹出窗口。我怎样才能限制这个。! 另外,如何限制打印屏幕选项。我知道还有其他实用程序,任何人都可以从中捕获数据。但是客户端希望限制打印屏幕选项 window.frames["your_if

我在MVC web应用程序的IFrame上显示了一个文档内容。内容不得复制和打印。我尝试使用Iframe的两个函数style=“pointer events:none;”oncontextmenu=“return false”禁用右键单击,这两个函数工作正常。 但在右键单击时,将显示带有“图幅源”、“视图源”的弹出窗口。我怎样才能限制这个。! 另外,如何限制打印屏幕选项。我知道还有其他实用程序,任何人都可以从中捕获数据。但是客户端希望限制打印屏幕选项

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};

函数clickIE(){
如果(全部文件){
返回false;
}
}
函数clickNS(e){
if(document.layers | |(document.getElementById&&!document.all)){
如果(e.which==2 | | e.which==3){
返回false;
}
}
}
if(document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS;`在此处输入代码`
}
否则{
document.onmouseup=clickNS;
document.oncontextmenu=点击IE;
}
document.oncontextmenu=新函数(“返回false”)

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};

谢谢你的帮助

要禁用右键单击菜单,可以使用以下代码段:

document.oncontextmenu = function() { 
    return false; 
};
window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};

我制作了一个显示效果的对话框。

您的问题有点让人困惑,因为标题是关于右键单击,而问题的bddy是关于复制和粘贴以及关于使用打印屏幕按钮。虽然你可以用右键点击按钮做一些事情(其他帖子已经回答了,并且有很好的文档记录),但通常你的问题是如何防止人们访问代码/内容或打印出你的内容

window.frames["your_iframe_id"].document.oncontextmenu = function(){ return false; };
window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};
这是不可能的。虽然你可以让一些用户变得更加棘手,但它永远不会成功对付那些有足够决心的用户

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};
首先,即使您(以某种方式)禁用了键盘上的“打印屏幕”按钮,仍有许多屏幕捕获程序。。。我看不出,在网站代码的限制范围内,怎么可能(永远)检测到另一个程序在这样做

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};
任何javascript解决方案都可能失败,他们可以关闭javascript

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};
即使您设法阻止某人查看源代码和复制HTML,也可能有人直接从站点中删除内容

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};

我有一个朋友是平面设计师,他想这样做(在这种情况下禁止人们复制图像)。我告诉他不要麻烦,如果他们想把你的内容放到公共领域,他们会的。水位线可能有帮助,但仅在某些情况下。就个人而言,我会放弃这项任务,接受它,专注于更有趣的任务。

这对我来说很好:

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};

我们不能在iframe上禁用右键单击。因为iframe内容是从另一个源加载的,所以我们的代码无法在其上工作。在这里,我找到了一个解决方案,这是我们唯一的选择

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};
<html>
<head>
<title>Disable Context Menu</title>
<script type="text/jscript">
  function disableContextMenu()
  {
    window.frames["fraDisabled"].document.oncontextmenu = function(){alert("No way!"); return false;};   
    // Or use this
    // document.getElementById("fraDisabled").contentWindow.document.oncontextmenu = function(){alert("No way!"); return false;};;    
  }  
</script>
</head>
<body bgcolor="#FFFFFF" onload="disableContextMenu();" oncontextmenu="return false">
<iframe id="fraDisabled" width="528" height="473" src="local_file.html"></iframe>
<div style="width:528px;height:473px;background-color:transparent;position:absolute;top:0px;">
</body>
</html>

禁用关联菜单
函数disableContextMenu()
{
window.frames[“fraDisabled”].document.oncontextmenu=function(){alert(“No way!”);返回false;};
//还是用这个
//document.getElementById(“fraDisabled”).contentWindow.document.oncontextmenu=function(){alert(“No way!”);返回false;};;
}  
1.)使用jquery禁用iFrame中的右键单击

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
</script>
// Function to block the right click in the iFrame
<script type="text/jscript">
function injectJS(){    
    var frame =  $('iframe');
    var contents =  frame.contents();
    var body = contents.find('body').attr("oncontextmenu", "return false");
    var body = contents.find('body').append('<div>New Div</div>');    
}
</script>
以下是jQuery中的一个示例(注意:按下鼠标右键将触发三个事件:mousedown事件、contextmenu事件和mouseup事件)

window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};

如果您有任何问题,请在下面留下评论。

如果用户可以看到,您不能阻止他复制内容。我的意思是,一点也不。哦,但我希望找到一个迂回的解决办法:-)。我们可以限制iframe内容的打印屏幕选项吗?我手机上有摄像头。如果你的意思是你想阻止他们拍电影,那么不,你不能。你所能做的就是让我的禁用文本选择、右键单击和从打印时的DOM中删除元素(仅IE)变得非常困难。防止截图的唯一方法是首先不向用户显示内容。所以完全放弃这个项目,不要截图!耶!;)如果我在开发工具中禁用JavaScript呢?那么您将能够再次获得右键单击菜单。我认为没有(我希望没有)任何方法可以禁用用户的浏览器功能。如何在iFrame中禁用?这对iFrame不起作用。请参阅下面我给出的答案。我尝试使用同一行代码,但不起作用。复制、打印选项现在不显示。但是“视图源”和“图幅源”以及“另存为”选项仍然可见。有没有办法限制这一点。。感谢客户请求此功能,这就是我提出此问题的原因。无论如何,谢谢大家花时间回答我,这个问题是一个“不是真正的问题”的候选人,应该结束,就这么简单。我还想补充一点,这些行为阻塞解决方案对用户来说更烦人,用户不会再想回来,而不是以任何方式防止复制。十几年前,互联网上充斥着蹩脚的脚本,每当你想与网页互动时,都会说“不要复制!!!”。最好的办法是告诉客户这件事做不到,部分地做会伤害他的观众。
window.frames["your_iframe_id"].contentDocument.oncontextmenu = function(){
 return false; 
};