0

我正在玩一些事件,我试图制作一个在 iframe 中的文本突出显示时触发的事件。我想我可能会尝试使用该onmouseup事件:

<div id="instapaper_div" onmouseup="handleEvent(event)">
    <iframe id="instapaper" src ="http://www.instapaper.com/m?u=<%= @content %>" width="90%" height="90%"></iframe>
</div>


<script type="text/javascript">

    function handleEvent(oEvent) {
        alert("Event!!")
    }
</script>

<%= @content %>是一个正常工作的嵌入式红宝石,以防有人想知道那是什么,但这与这里的问题无关。

如果我单击网页上 iframe 之外的任何位置(此 div 部分是我的整个 html 文件的整个正文,未在此处发布),它会正确显示警报“事件!!”。但是,如果我在 iframe 内单击,这是我希望事件实际发生的地方,则什么也不会发生。如何让它在 iframe 中注册此事件?我尝试在 iframe 标记内使用 onmouseup ,但这不起作用。此外,如果 onmouseup 不是识别我想要的 iframe 的“文本突出显示”事件的最佳方式,我应该使用什么事件以及如何使用它?

提前致谢!

4

1 回答 1

0

您无法检测到该事件,因为您的 iframe 来自不同的域,因此适用同源策略。

基本上,SOP 意味着您不能与从您自己的域以外的域加载的任何内容的 DOM 进行交互。

(我假设您没有从 instapaper.com 为您的网站提供服务。如果是,那么您应该能够检测到从 instapaper.com 加载的 iframe 中的事件。)

https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript

于 2011-06-28T03:12:35.293 回答