gpt4 book ai didi

javascript - Firefox 偶尔不会加载动态 iframe

转载 作者:太空狗 更新时间:2023-10-29 15:02:35 25 4
gpt4 key购买 nike

我有一些 JavaScript 代码可以在给定的 HTML 页面中动态注入(inject) iframe。不幸的是,在 Firefox 中,并且仅在 Firefox 中,尽管 iframe 会不时创建,但相关的 URL 不会加载到其中。

我知道它没有加载,因为相关的 URL 没有出现在 Firebug 网络选项卡中,并且当我检查 iframe 时,我没有在其中看到任何预期的 HTML 代码(当 iframe 在同一域中时)作为外围页面)。我也没有看到任何 JavaScript 或网络错误。

这是一个代码片段,我已经检查了所有相关变量是否正确:

    var iframe = document.createElement("iframe");
iframe.width = options["w"];
iframe.height = options["h"];
iframe.scrolling = "no";
iframe.marginWidth = 0;
iframe.marginHeight = 0;
iframe.frameBorder = 0;
iframe.style.borderWidth = 0;

if (node.childNodes.length > 0)
node.insertBefore(iframe, node.childNodes[0]);
else
node.appendChild(iframe);

iframe.contentWindow.location = iframeSrc + "?" + querystring;

这是为 iframe 设置的示例 URL(当 URL 指向外部服务器时,问题也会重现,必须在开头省略“http://”,否则我无法发布问题):

127.0.0.1:8000/widget/iframe/index.html?style=slide-top-to-bottom&culture_code=en_us&c=26&sc=1324&title=Top%20News&caption=Top%20Stories&order=relevance&count=20&w=250&h=300&timestamp=true&scrollbar=false&theme=ui-lightness&className=8815455464592103&referrer=http%3A%2F%2F127.0.0.1%3A8000%2Fwidget%2Fbuilder%2Findex.html

在网络上做了一些研究,我发现了这个未修复的 Firefox 错误,它似乎与这个问题有关: https://bugzilla.mozilla.org/show_bug.cgi?id=279048

阅读错误后,我尝试了多种解决方案,但均未解决问题:

  • 设置 iframe.src 而不是 iframe.contentWindow.location
  • 向查询字符串添加一个随机参数
  • 在 URL 末尾添加带有随机数的“#”符号
  • 给 iframe 一个随机的名字

有没有人有解决这个烦人的 Firefox 错误的方法?还是我描述的问题与错误无关并且有不同的解决方案?

最佳答案

如果将它添加到脚本底部会发生什么情况?

iframe.contentWindow.location.reload(true);

也许它会停止在 FF 中重新加载的需要。

编辑

修复了示例

关于javascript - Firefox 偶尔不会加载动态 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4205374/

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