【发布时间】:2011-01-16 09:39:18
【问题描述】:
出于我自己的目的(咳延迟加载广告脚本),我正在覆盖 document.write 函数以缓冲脚本的输出,将其写入 div 并恢复本机完成后 document.write。
伪代码如下所示:
- 保存原生代码 document.write
- 重新定义document.write
- 脚本的评估和缓冲输出
- 脚本完成后,将缓冲区写入
- 恢复原生 document.write
问题出现在粗体步骤中 - 广告脚本中的一行创建了一个 iframe,并调用
frame.document.write
通过 Firebug,我已经验证了这个 document.write 是本机 JS 代码,不是我的覆盖版本。
有没有办法为所有窗口和框架覆盖 document.write?这是一个范围界定问题,但我不确定如何强制我的 document.write 占上风。
【问题讨论】:
-
这是一种常见的方法吗?我在某个标签管理服务的页面中有一些代码,这些代码正在执行与此相同的操作……它实际上干扰了其他一些使用 document.write 的脚本(有时,取决于脚本评估的顺序)。
标签: javascript iframe scope document.write