【发布时间】:2014-04-09 03:34:06
【问题描述】:
我正在尝试在我的页面上放置一个 keydown 侦听器。但是,我的页面包含一个 iFrame,如果我在 iFrame 内单击并按下我的键,处理程序不会触发。我尝试了来自网络的各种公式来访问 iFrame 内的文档并在其上放置一个侦听器,但它似乎不起作用。
文档中的内容不是来自同一来源。它来自与我的网站不同的域。
我可以监听 keydown 事件吗?还是不可能?
【问题讨论】:
-
你能注入一些 JS 代码(类似于bookmarklet works)来捕获你想要的击键吗?
-
我认为我可以构建一个有效的示例,但 iframe 很奇怪,跨源 iframe 更是如此。我得到了一些使用相同来源网页的示例,但不是来自不同域。事实上,我的同源网页通过在 iframe.contentWindow 上设置事件来工作,跨源时似乎被阻止。
-
我知道它的老问题,但因为我很无聊,我还是会回答它:) 你可以在你的顶部元素上使用 element.focus()。因此,假设您将在 iframe 上添加点击侦听器。每次点击呼叫焦点。希望对您有所帮助。
标签: javascript jquery iframe addeventlistener same-origin-policy