出于我自己的目的(咳嗽延迟加载广告脚本),我覆盖了document.write函数,以缓冲脚本的输出,将其写入div,并恢复本机document.write,当我完成。
伪代码看起来像这样:
问题出现在粗体步骤中 - 广告脚本中的一行创建了iframe,然后调用
frame.document.write
单步执行Firebug,我已经验证此document.write是本机JS代码,而不是我的覆盖版本。
有没有办法覆盖所有窗口和框架的document.write?这是一个范围问题,但我不确定如何强制我的document.write占上风。
答案 0 :(得分:5)
每一扇窗户都是独特而珍贵的雪花,因此带着创造者的某些礼物进入这个世界。这些礼物中有自己的“窗口”和“文件”物品,像黎明时代的水晶般清澈的原始海洋一样清新纯净。
同样,所有基本的Javascript“类”(Function,Array,RegExp等)都是“干净的”。这就是为什么当你将一个页面加载到iframe时,如果该页面有自己的依赖于(例如)jQuery的本地脚本,它必须导入它自己的库副本。