gpt4 book ai didi

javascript - Firefox 未检测到 iframe 加载事件?

转载 作者:行者123 更新时间:2023-11-28 08:57:20 32 4
gpt4 key购买 nike

我的页面上有一个广告单元,它只是一个 iframe。页面加载时,iframe 中可以显示几个不同的广告。 iframe 中有一段 JavaScript 尝试使用以下方法呈现第一个广告单元:

document.open();
document.write(ad_tag1);
document.close();

第一个广告单元将以一定的概率呈现广告,否则它将向广告单元 iframe 触发 postmessage 事件,指示没有广告可展示。

如果有广告可以展示,一切都是黄金。但是,如果没有,广告单元将继续执行以下操作:

document.open();
document.write(ad_tag2);
document.close();

这会导致第二个广告代码正常呈现。然而,问题是 Firefox 似乎无法检测到第二个广告单元何时加载,尽管它显然已经加载,并且页面顶部的旋转器一直旋转,就好像还有东西要加载一样。

我也尝试过使用 DOM 操作方法,例如innerHTML,但这产生了同样的问题。我也尝试过使用Prototype JS内置的更新方法,但这也导致了同样的问题。

有人知道 Firefox 为何这样做吗?我的代码在 chrome 上完美运行..

此外,我无法控制广告代码的内容。广告代码是第三方的,从我的 Angular 来看也可能是黑匣子,因为广告代码可能包含脚本,可能会删除 iframe 等。

最佳答案

我以前见过这个,而且好几次了。它几乎总是由写入文档的格式错误的 HTML 或不完整的 HTML 引起的。考虑:

<html>
<div id="myadd2">
<p>Some stuff<p>
</div>

没有关闭</p>而且也没有关闭<html>标签。这可能会导致 Firefox 认为文档仍在加载。直到它从服务器收到 EOF(关闭连接)或看到结束 HTML 标记和格式良好的 HTML block 时,它才会完成。

第二个添加可能包含不匹配的引号、未终止的 html 标记或不匹配的标记。通过xmllint --html运行HTML内容看看它对此有何看法。

关于javascript - Firefox 未检测到 iframe 加载事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18276930/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com