1

我已将此代码应用于 iframe id。

 <iframe id='<?php echo 'fraDisabled'.$i.$post->ID; ?>' src='<?php echo $file['url']; ?>'  ></iframe >


function disableContextMenu()
{

  var text="you dont have proper privelages to do this !!";
  window.frames['<?php echo 'fraDisabled'.$i.$post->ID; ?>'].document.oncontextmenu = function(){alert(text); return false;};
  window.frames['<?php echo 'fraDisabled'.$i.$post->ID; ?>'].document.onkeypress = function(){alert(text); return false;}; 
  window.frames['<?php echo 'fraDisabled'.$i.$post->ID; ?>'].document.onmousedown = function(){alert(text); return false;}; 
}

PHP:

<iframe id='<?php echo 'fraDisabled'.$i.$post->ID; ?>' src='<?php echo $file['url']; ?>'>
</iframe>

它适用于 Chrome,但不适用于 Mozilla Firefox。

4

1 回答 1

2

可能不会帮助您'在文本变量中使用撇号。

改变...

var text='sorry you don't have permission to do this !!';

到...

var text='sorry you don\'t have permission to do this !!';

或者...

var text="sorry you don't have permission to do this !!";

额外的

您还需要将''id''最后两行中的'id'

更新

看起来像 Firefox 的问题,并且windows.frames['id']当框架只有一个 id 时使用。

尝试将您生成的动态id添加idname.<iframe>

另一条信息已经曝光

我刚刚发现有<iframe>问题的将包含一个 PDF 文档。

看起来 Chrome 会像 OP 所期望的那样触发点击和上下文菜单事件......但 IE 和 Firefox 不会,这更像是我所期望的行为。

不幸的是,我认为您对此无能为力。从可用性的角度来看,您还无法使用滚动条在 PDF 上滚动(鼠标滚轮仍然可以使用)。

我仍然相信nameFireFox 中需要该属性以供window.frames参考。

于 2012-06-22T13:42:03.387 回答