gpt4 book ai didi

javascript - 确保 IFRAME 的 onLoad 不会执行得太快

转载 作者:行者123 更新时间:2023-11-28 09:28:23 27 4
gpt4 key购买 nike

我刚刚发现问题的根源在于父级 HTML 调用子 IFRAME 中的控件但是速度太快,有时, super onLoad 尝试在子 onLoad 有机会向 DOM 添加内容之前执行此操作。

我能做些什么呢?

我尝试在子项中设置某种来自 onLoad 的反馈。由于许多奇怪的错误而惨遭失败,这些错误可以由伙计们总结,只是请不要

我尝试过设置一个延迟器,但它非常丑陋并且不是 100% 可靠。

编辑:

onload中我这样做:

var stuff = getReferenceToStuff();
var someDiv = stuff.contentWindow.document.getElementById("someDiv");
someDiv.className = "classy";

问题是有时引用someDivnull,有时(通常当我通过F5重新加载页面时),它指向正确的元素。我知道这是因为 IFRAME 的内容有点慢。

所以我的问题是这样的。如何确保 onload 被推迟,直到嵌入式 IFRAME 组件的 onload 确保它已加载且所有组件都已到位?

最佳答案

onLoad 事件并不总是在 document 上正常工作。但它在每个元素上都能正常工作。

var iframes = document.getElementsByTagName('iframe'),
counter = 0,
max = iframes.length;

[].forEach.call(iframes, iLoaded);

function iLoaded() {
if (++counter === max) {
callback();
}
}

function callback() {
// All the iframes are loaded
}

关于javascript - 确保 IFRAME 的 onLoad 不会执行得太快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14002675/

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