【发布时间】:2013-02-10 07:23:14
【问题描述】:
我想在页面加载后调用一些 JS,这可能会涉及延迟,因此我希望首先加载页面以便显示内容......但似乎 onLoad 处理程序中的代码被称为 在渲染完成之前。有没有更好的事件我可以使用,当页面“完成”时触发?
为了澄清,我想在页面呈现在屏幕上之后运行一些 JS,所以真的是一个“post-everything 事件”。
【问题讨论】:
-
如果您的页面完全呈现,然后您的 Javascript 操作 DOM,您将拥有未操作 DOM 的“闪现”,然后更改将显示出来。但是 onload 应该只在所有图像下载后调用,等等......
-
所以....你想在 DOM 准备好或加载所有资源之后运行你的代码。抱歉,我不清楚。
-
基本上看到前面的页面后,我就想运行一些代码。
-
@John "在渲染完成之前调用 onLoad 处理程序。"据我所知,在“onload”之后,您会发现布局已确定并且所有元素结构都已完成。什么经历让你不这么认为?其他信号是“ondomcontentloaded”和“onpageshow”。但是最大的跨浏览器兼容性会影响它们,因为许多浏览器的许多版本都不会触发它们(尤其是“onpageshow”,它通常仅限于“bfcache”功能)。 jQuery 泛化处理跨浏览器问题,但请注意它是“DOM Ready”,not 用于显示已完成。
标签: javascript html