页面满载后如何执行函数?

2022-08-29 23:30:06

我需要在页面完全加载时执行一些JavaScript代码。这包括图像之类的东西。

我知道你可以检查DOM是否准备好,但我不知道这是否与页面完全加载时相同。


答案 1

这就是所谓的.它在DOM ready出现之前就出现了,而DOM ready实际上是出于等待图像的确切原因而创建的。loadload

window.addEventListener('load', function () {
  alert("It's loaded!")
})

答案 2

通常您可以使用 ,但您可能会注意到,当您使用后退/前进历史记录按钮时,最近的浏览器不会触发。window.onloadwindow.onload

有些人建议奇怪的扭曲来解决这个问题,但实际上,如果你只是做一个处理程序(即使是一个什么都不做的处理程序),这个缓存行为将在所有浏览器中被禁用。MDC很好地记录了这个“功能”,但由于某种原因,仍然有人使用和其他奇怪的黑客。window.onunloadsetInterval

某些版本的 Opera 有一个错误,可以通过在页面中的某个位置添加以下内容来解决:

<script>history.navigationMode = 'compatible';</script>

如果你只是试图获得一个javascript函数,每次视图调用一次(不一定是在DOM完成加载之后),你可以做这样的事情:

<img src="javascript:location.href='javascript:yourFunction();';">

例如,我使用此技巧将一个非常大的文件预加载到加载屏幕上的缓存中:

<img src="bigfile"
onload="this.location.href='javascript:location.href=\'javascript:doredir();\';';doredir();">