如何检测何时执行 iframe 脚本
How to detect when iframe scripts are executed?
例如:我有一个带有 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
中的用户活动。
对不起,但我希望这有帮助!
相关文章:
- 如何检测何时执行 iframe 脚本
- AngularJS-由$scope创建的作用域何时执行$new()已删除.垃圾收集器或Angular负责处理它吗
- Javascript:Coderbyte挑战4:字母变化:帮助分析代码:这是如何大写元音的,以及何时执行else语句
- 如果另一个功能完成,则执行该功能,而不是何时
- 何时使用自动函数执行
- 何时执行与 DOM 更改相关的 JavaScript
- $.延迟:如何检测每个承诺何时执行
- 合成 JavaScript 元素何时执行
- 在执行某些 ajax 操作时,此匿名回调函数何时运行
- 如何知道回调循环的哪一次迭代以及何时执行
- 确定异步执行何时完成
- 知道.each()启动的所有异步调用何时执行完毕
- Scala函数何时执行
- 是否可以检测何时执行了Firebase快照
- 何时执行$.Ajax或$.Get或$.post在jQuery AJAX
- Javascript函数何时执行?PHP变量不会改变传入的参数
- loadasync函数导入的外部脚本何时执行
- 关于脚本在追加后何时执行的问题
- JavaScript 何时执行
- 在Javascript中yield语句何时执行?