2012-02-09 77 views
0

我可以同時使用body onload和window.onload嗎?我已經使用這個代碼body onload和window.onload同時

<body onload = "alertFirst()"> 
</body> 
<script> 
    window.onload = alertSec; 
</script> 

嘗試過,但沒有奏效。我只需要有人向我確認。非常感謝

回答

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> 

我想這可能可以幫助你。

+0

是它幫助。謝謝! – 2012-02-09 15:06:57

1

您可以(通過添加事件處理程序(S)),但你不應該有兩個

不是呼叫添加到在window.onload:

<html> 
<head> 
<script> 
    window.onload = function() { 
    alertFirst(); 
    alertSec(); 
    } 
</script> 
</head> 

<body> 
</body> 
1

您的問題的答案是「否」。然而,它有辦法解決它。

添加兩個電話一個的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> 
+0

把我想起來。謝謝。 – 2012-02-09 15:07:49

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); 
相關問題