如何检测何时执行 iframe 脚本

How to detect when iframe scripts are executed?

本文关键字:何时 执行 iframe 脚本 检测 何检测      更新时间:2023-09-26

例如:我有一个带有 iframe 的主页,我的 iframe 包含一个按钮。当我按下 iframe 内部的按钮时,会执行一些脚本,并且 iframe 的设计会发生变化。文本出现和其他东西。

如何检测 iframe 脚本何时运行?(还是按钮被按下了?

iframe 来自不同的域。

如果 iframe 的内容来自与外部页面不同的域,那么您不能 - 浏览器故意阻止您了解 iframe 内部发生的事情。不过,您可以做的是获取框架指向的URL(如果它发生变化(。

如果它在同一域中运行,您可以像通常通过 iframe 的文档属性一样访问 iframe 中的元素

如果主页和 iframe 位于同一域中,则可以使 iframe 中的 javascript 调用函数或访问父框架的元素。

所以在 iframe 脚本的末尾你可以做

parent.script_is_finished();

如果您可以控制 iframe 中的脚本,则可以使用 window.postMessage 与您的主页进行通信,即使它们位于不同的域中。

对此的支持仅限于FF3+,IE8+,Chrome,Safari(5?(,Opera10+

这是html5demos上的演示

作为对

iframe来自不同域这一事实的更新:

简短的回答:不可以。您无法检测到来自其他网域的iframe内的点击。

更长但仍然简短的答案:您不能更改的原因与您可以更改iframe内容的原因相同 - 除非iframe位于同一域中,否则这将存在安全风险。您根本无法跟踪来自不同网域的iframe中的用户活动。

对不起,但我希望这有帮助!