如何禁用在iframe内右键单击

时间:2014-12-19 13:32:54

标签: javascript jquery html css iframe

我已尝试过大多数解决方案,通过谷歌搜索限制iframe内的右键点击,但我可以禁用<div></div>标记的权限,但无法限制iframe窗口内的右键单击。如果有人提出这个过程意味着分享你的想法和解决方案,这有助于我很多。这是我的代码

&#13;
&#13;
<html><head>
<script type="text/JavaScript" language="JavaScript"> 
 // http://html-generator.weebly.com/html-right-click-disable-code.html 
 var tenth = ''; 
 
 function ninth() { 
   if (document.all) { 
     (tenth); 
     alert("Right Click Disable"); 
     return false; 
   } 
 } 
 
 function twelfth(e) { 
   if (document.layers || (document.getElementById && !document.all)) { 
     if (e.which == 2 || e.which == 3) { 
       (tenth); 
       return false; 
     } 
   } 
 } 
 if (document.layers) { 
   document.captureEvents(Event.MOUSEDOWN); 
   document.onmousedown = twelfth; 
 } else { 
   document.onmouseup = twelfth; 
   document.oncontextmenu = ninth; 
 } 
 document.oncontextmenu = new Function('alert("Right Click Disable"); return false') 
</script></head><body>
 <div id="Container">
			<iframe id="fraDisabled"  src="http://www.stackoverflow.com" style="border: medium none;height: 820px;margin-left: -12px;top:55px; 
              margin: -15px 0 0 0;clip:rect(46px, 1360px, 750px, -65px);position:absolute;width: 1378px;">
    </iframe> 
		</div>
</body></html>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

如果iframe位于同一个域中,您可以使用.contents() jQuery方法。

// Grab the iframe document
var iframeEl = $('#iframeID').contents().get(0);

获取iframe元素后,您可以将事件绑定到i:

// Bind event to iframe
$(iframeEl).bind('contextmenu', function(event) {
    return false;
});

如果iframe位于不同的域中,由于跨域请求策略,jQuery将不允许它。

答案 1 :(得分:0)

iframe内的页面可能位于同一个域中。如果您访问iframe内的其他域的页面,则不建议这样做。

参考链接:Cross Domain Policy

欢呼:)