我正在玩事件,我正在尝试制作一个在我的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文件的整个主体,这里没有发布),它会正确显示警告“Event !!”。但是,如果我在iframe中单击,这是我希望事件实际发生的地方,则没有任何反应。如何让它在iframe中注册此事件?我尝试在iframe标签内使用onmouseup,但这不起作用。另外,如果onmouseup不是识别iframe的“文本突出显示”事件的最佳方式,那就是我想要的,我应该使用什么事件以及如何使用它?
提前致谢!
答案 0 :(得分:0)
您无法检测到该事件,因为您的iframe来自其他域,因此适用同源策略。
基本上,SOP意味着您无法与从您自己以外的域加载的任何内容的DOM进行交互。
(我假设您没有从instapaper.com为您的网站提供服务。如果您是,那么您应该能够检测到从instapaper.com加载的iframe中的事件。)
https://developer.mozilla.org/En/Same_origin_policy_for_JavaScript