哪个更受支持:window.onload还是document.onload?
当前回答
在Chrome中,window.onload与<body onload=“”>不同,而在Firefox(35.0版)和IE(11版)中它们都是相同的。
您可以通过以下代码段来探索:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--import css here-->
<!--import js scripts here-->
<script language="javascript">
function bodyOnloadHandler() {
console.log("body onload");
}
window.onload = function(e) {
console.log("window loaded");
};
</script>
</head>
<body onload="bodyOnloadHandler()">
Page contents go here.
</body>
</html>
您将在Chrome控制台中看到“窗口加载”(这是第一个)和“主体加载”。然而,你会在Firefox和IE中看到“body onload”。如果你在IE&FF的控制台中运行“window.onload.toString()”,你会看到:
“函数onload(event){bodyOnloadHandler()}”
这意味着赋值“window.onload=函数(e)…”被覆盖。
其他回答
简言之
IE 6-8不支持window.onload任何现代浏览器都不支持document.onload(从不触发事件)
window.onload=()=>console.log('window.onlload-works');//解雇document.onload=()=>console.log(“document.onlload-works”);//未点火
然而,Window.onload是标准的——PS3中的web浏览器(基于Netfront)不支持窗口对象,因此您不能在那里使用它。
添加事件侦听器
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function(event) {
/*
- Code to execute when only the HTML document is loaded.
- This doesn't wait for stylesheets,
images, and subframes to finish loading.
*/
});
</script>
2017年3月更新
1香草JavaScript
window.addEventListener('load', function() {
console.log('All assets are loaded')
})
2 jQuery
$(window).on('load', function() {
console.log('All assets are loaded')
})
Good Luck.
window.onload和onunload是document.body.onload和document.body_onload的快捷方式
所有html标记上的document.onload和onload处理程序似乎是保留的,但从未触发
文档中的“onload”->true
在Chrome中,window.onload与<body onload=“”>不同,而在Firefox(35.0版)和IE(11版)中它们都是相同的。
您可以通过以下代码段来探索:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--import css here-->
<!--import js scripts here-->
<script language="javascript">
function bodyOnloadHandler() {
console.log("body onload");
}
window.onload = function(e) {
console.log("window loaded");
};
</script>
</head>
<body onload="bodyOnloadHandler()">
Page contents go here.
</body>
</html>
您将在Chrome控制台中看到“窗口加载”(这是第一个)和“主体加载”。然而,你会在Firefox和IE中看到“body onload”。如果你在IE&FF的控制台中运行“window.onload.toString()”,你会看到:
“函数onload(event){bodyOnloadHandler()}”
这意味着赋值“window.onload=函数(e)…”被覆盖。
推荐文章
- 如何使用Jest测试对象键和值是否相等?
- 将长模板文字行换行为多行,而无需在字符串中创建新行
- 如何在JavaScript中映射/减少/过滤一个集?
- Bower: ENOGIT Git未安装或不在PATH中
- 添加javascript选项选择
- 在Node.js中克隆对象
- 为什么在JavaScript的Date构造函数中month参数的范围从0到11 ?
- 使用JavaScript更改URL参数并指定默认值
- 在window.setTimeout()发生之前取消/终止
- 如何删除未定义和空值从一个对象使用lodash?
- 检测当用户滚动到底部的div与jQuery
- 在JavaScript中检查字符串包含另一个子字符串的最快方法?
- 检测视口方向,如果方向是纵向显示警告消息通知用户的指示
- ASP。NET MVC 3 Razor:在head标签中包含JavaScript文件
- 禁用从HTML页面中拖动图像