gpt4 book ai didi

javascript - iframe 更改 html 内容 - 任何 "render finished"事件吗?

转载 作者:行者123 更新时间:2023-12-03 02:35:21 24 4
gpt4 key购买 nike

我动态修改 iframe 的 HTML 内容,我如何知道 HTML 加载何时完成?

<iframe id="myIframe" />
<script>
var iframeDoc = document.getElementById('myIframe').contentWindow.document;
iframeDoc.innerHTML = "<html>complex html with external stylesheets/images</html>";
//this can take 1-10 secs to visually render b/c of external css/imgs
</script>

尝试通过 html 标签以编程方式和声明方式将 onload 添加到 iframe 元素,但不起作用。

还尝试了 iframeDoc.writesrcdoc 属性而不是更改 innerHTML,但没有帮助

PS。请注意,这是直接修改 iframe(或任何元素)的 HTML,而不是更改显然会触发 onload 事件的 src 属性

最佳答案

在这里,您并不是真正将文档“加载”到 iframe 中,无论如何也不符合“加载”的传统定义,即 HTTP 请求,所以我怀疑您是否可以通过它来触发加载事件。

使用数据 URI 设置 iframe 内容可能是一种方法,但这在 IE/Edge 中不起作用 ( https://caniuse.com/#feat=datauri )

创建一个包含 HTML 文档的 Blob,然后使用 createObjectURL 创建可分配给 iframe 源的 URL。这样,它的行为方式应该与通过 HTTP(S) URL 将文档“正常”加载到 iframe 中的方式相同,因此在这种情况下也会触发您期望的相同事件。

https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob#Example https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL

关于javascript - iframe 更改 html 内容 - 任何 "render finished"事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48553528/

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