javascript-iframe和事件监听器

问题描述

| 祝大家有美好的一天。 考虑一个包含iframe的页面。 iframe源在另一个域上。 我会对两件事感兴趣: 是否可以在iframe中创建事件侦听器,以侦听在父窗口中发生的事件(并在iframe中运行函数)? 是否可以在父窗口内创建事件侦听器,以侦听iframe中发生的事件(并在父窗口中运行函数)?     

解决方法

两种帐户都不能,跨域脚本安全措施禁止任何跨域通信。 您可能想看一下有关使用IFrame进行跨域通信的深入文章。它讨论了您可以做什么和不可以做什么,并提供了一些替代方法,例如window.postMessage。     ,是。但这可能比您感兴趣的工作还要多。您需要为该页面创建一个代理,该代理与父页面位于同一域中。您的代理可以是简单的传递,但很可能会破坏页面;为了不破坏在该页面上运行的脚本而进行的脚本操作,这些脚本假定了要对其进行评估的上下文,因此可能需要一些URL重写,因此,这取决于“这取决于”。 但是您的问题是“可以...吗?”,答案是“可以。”