我的页面上有一个广告单元,它只是一个 iframe。当页面加载时,可以在 iframe 中显示几个不同的广告。iframe 中有一段 javascript 尝试使用以下方法呈现第一个广告单元:
document.open();
document.write(ad_tag1);
document.close();
第一个广告单元将以某种概率呈现广告,否则它将向广告单元 iframe 触发一个 postmessage 事件,指示没有广告可显示。
如果有广告要展示,一切都是金色的。但是,如果没有,广告单元将继续执行以下操作:
document.open();
document.write(ad_tag2);
document.close();
这会导致第二个广告代码正常呈现。然而,问题是 Firefox 似乎无法检测到第二个广告单元何时加载,即使它显然已经加载,并且页面顶部的微调器一直在旋转,就好像还有东西要加载一样。
我也尝试过使用诸如 innerHTML 之类的 DOM 操作方法,但这产生了同样的问题。我也尝试使用 Prototype JS 的内置更新方法,但这也导致了同样的问题。
任何人都知道为什么 Firefox 会这样做?我的代码在 chrome 上完美运行..
此外,我无法控制广告标签是什么。广告标签是第三方的,从我的角度来看也可能是黑盒子,因为广告标签中可能包含脚本,可能会删除 iframe 等。