捕获iframe jQuery中的所有事件并进行复制



这是一个问题:

我有一个iframe,可以显示任何网页(不一定是我开发的)。在这个页面上可能会附上一些事件(大概我不知道)。

如何动态拦截这些事件并将其存储以供以后复制?

例如:假设当鼠标移动到某个div上时,它会改变颜色。我想确保当您触发将更改div颜色的事件时;注册的";所有一系列信息将允许我(无需用户交互)在以后复制它。

录制和后续复制的想法?

简单的答案是:你不能

如果"任何网页"的文档对象位于不同的域上,则您无法在页面上使用JavaScript访问该文档对象,我认为如果您说"任意网页",则是因为同源政策。你需要IFRAME中的网站与你的脚本合作才能实现这一点,这在"任何网页"中都不会发生。

IFRAME在同一域上
如果您的网页在同一个域上,那么您可以通过为您想要捕获的每个事件添加一个侦听器来访问IFRAMEs body元素的事件,如这里所述。这对于所有冒泡到身体的事件都是可能的。因此,如果您的事件被阻止向上冒泡到主体,则它们将不会被此解决方案捕获。

jQuery('#website body').on('click mouseover mouseout', function(event) {
console.log(event.type);
});

假设您有一个id为website的IFRAME,您可以通过如上所述用空格分隔列出事件来捕获您想要的事件。该示例捕获clickmousovermouseout

也许这更接近你想要的?

将事件处理程序添加到div中。例如,您可以使用

$('#div').mouseover(function(e) { ... }) 

('#div').on('mouseover', function(e) { ... })

对于"复制",您必须将有关过去事件的信息存储在某个对象中。您甚至可以存储事件对象本身。

相关内容

  • 没有找到相关文章

最新更新