【发布时间】:2015-12-24 06:46:42
【问题描述】:
我需要什么: 我的要求是将脚本注入网页中显示的所有窗口。
我知道我们可以使用 window.frames 属性找到所有窗口,但在我的情况下这还不够,因为稍后可以通过 iframe 将新窗口添加到页面(将 iframe 包含到 DOM 中)
所以我需要一种机制来跟踪页面中的窗口,比如新窗口初始化时的回调。
我尝试了什么: 我使用 Object.observe API 来跟踪 window.frames 对象的变化。但我知道 Object.observe API 将根据此链接 (https://esdiscuss.org/topic/an-update-on-object-observe) 被删除。
那么,使用这个 API 好不好。或者如果有其他方法请告诉我
【问题讨论】:
-
你知道跨域框架吗?还是所有 iframe 都与您的顶级文档具有相同的来源?
-
你是如何创建新窗口的?一定有一些像
addFrame这样的事件。正确的?也不确定,但您可以尝试为所有iFrames使用委托进行加载功能 -
@udidu,我可以在那里访问的任何窗口只有我需要注入脚本。所以需要担心跨源框架。
-
你需要知道,如果你在不同来源的 iframe 中有一个窗口,你将无法注入任何东西
-
@Rajesh 如果我们将 iframe 附加到现有页面,将创建新窗口。事件委托将在特定文档的上下文中工作(每个窗口)。
标签: javascript jquery