Ben*_*ock 273 javascript
我需要在页面完全加载时执行一些JavaScript代码.这包括像图像之类的东西.
我知道你可以检查DOM是否准备就绪,但我不知道这是否与页面完全加载时相同.
Mat*_*chu 382
这叫做onload.在DOM准备就绪之前,它已经过了waaaaay,并且实际上已经创建了DOM就绪,因为onload等待图像.
window.addEventListener('load', function () {
alert("It's loaded!")
})
Run Code Online (Sandbox Code Playgroud)
geo*_*car 30
通常您可以使用window.onload,但您可能会注意到window.onload使用后退/前进历史记录按钮时最近的浏览器不会触发.
有些人建议使用奇怪的扭曲来解决这个问题,但实际上如果你只是制作一个window.onunload处理程序(即使没有做任何事情),这种缓存行为将在所有浏览器中被禁用.该MDC文件这个"功能"相当不错,但由于某些原因仍有人使用setInterval和其他怪异的黑客.
某些版本的Opera有一个可以通过在页面中的某处添加以下内容来解决的错误:
<script>history.navigationMode = 'compatible';</script>
Run Code Online (Sandbox Code Playgroud)
如果你只想尝试每个视图调用一次javascript函数(并不一定在DOM加载完成后),你可以这样做:
<img src="javascript:location.href='javascript:yourFunction();';">
Run Code Online (Sandbox Code Playgroud)
例如,我使用此技巧将一个非常大的文件预加载到加载屏幕上的缓存中:
<img src="bigfile"
onload="this.location.href='javascript:location.href=\'javascript:doredir();\';';doredir();">
Run Code Online (Sandbox Code Playgroud)
mur*_*urb 16
为了完整起见,您可能还希望将其绑定到DOMContentLoaded,现在广泛支持DOMContentLoaded
document.addEventListener("DOMContentLoaded", function(event){
// your code here
});
Run Code Online (Sandbox Code Playgroud)
更多信息:https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
abs*_*ive 15
试试这只在整页加载后运行
通过Javascript
window.onload = function(){
// code goes here
};
Run Code Online (Sandbox Code Playgroud)
由Jquery
$(window).bind("load", function() {
// code goes here
});
Run Code Online (Sandbox Code Playgroud)
试试这个代码
document.onreadystatechange = function () {
if (document.readyState == "interactive") {
initApplication();
}
}
Run Code Online (Sandbox Code Playgroud)
访问https://developer.mozilla.org/en-US/docs/DOM/document.readyState了解更多详情
使用该onLoad()事件的Javascript ,将在执行前等待页面加载.
<body onload="somecode();" >
Run Code Online (Sandbox Code Playgroud)
如果您正在使用jQuery框架的文档就绪函数,则在加载DOM之后和加载页面内容之前,代码将立即加载:
$(document).ready(function() {
// jQuery code goes here
});
Run Code Online (Sandbox Code Playgroud)
在使用现代 javascript (>= 2015) 的现代浏览器中,您可以添加type="module"到脚本标记中,并且该脚本中的所有内容都将在整个页面加载后执行。例如:
<script type="module">
alert("runs after") // Whole page loads before this line execute
</script>
<script>
alert("runs before")
</script>
Run Code Online (Sandbox Code Playgroud)
旧的浏览器也会理解nomodule属性。像这样的东西:
<script nomodule>
alert("tuns after")
</script>
Run Code Online (Sandbox Code Playgroud)
有关更多信息,您可以访问javascript.info。