我可以同时使用body onload和window.onload吗?我已经尝试使用此代码
<body onload = "alertFirst()">
</body>
<script>
window.onload = alertSec;
</script>
但它没有用。我只需要有人向我确认。非常感谢
答案 0 :(得分:1)
您可以(通过添加事件处理程序)但不应该同时使用
而是将调用添加到window.onload:
<html>
<head>
<script>
window.onload = function() {
alertFirst();
alertSec();
}
</script>
</head>
<body>
</body>
答案 1 :(得分:1)
你的问题的答案是“不”。但是有很多方法可以解决它。
将两个调用添加到一个onload函数是理想的,但是如果在添加了一个onload处理程序之后添加一个onload处理程序,并且你没有使用一个方便这个的框架,你就可以这样做:
<html>
<head>
<script type="text/javascript">
function alertFirst(){
alert('First');
}
function alertSec(){
alert('Second');
}
</script>
</head>
<body onload="alertFirst();">
content
</body>
<script>
var func = document.body.onload;
window.onload=function(){
func();
alertSec();
}
</script>
</html>
答案 2 :(得分:1)
不,document.body.onload
实际上已映射到window.onload
。您可以自行检查 - 当您有<body onload="a()">
和console.log(window.onload)
时,a()
会打印到控制台中。
你可以做的是让一个onload事件处理程序调用另外两个函数。
window.onload = function () {
a();
b();
};
或两个事件监听器
window.addEventListener('load', a, false);
window.addEventListener('load', b, false);
答案 3 :(得分:0)
如果您要使用的一个或多个脚本在BODY HTML标记中具有事件处理程序,您仍然可以将其移动到javascript代码中。请参阅以下示例:
脚本#1:
<script language="javascript">
function start(){
...code for script #1...
}
</script>
<body onload="start()">
脚本#2:
<script language="javascript">
function init(){
...code for script #2...
}
window.onload=init;
</script>
结果:
<script language="javascript">
function start(){
...code for script #1...
}
function init(){
...code for script #2...
}
window.onload=function(){
start();
init();
}
</script>
<body>
我认为它可以帮到你。