作者TKirby ( ^-^)
看板Web_Design
標題Re: [問題] 兩個 window.onload 時該如何處理?
時間Thu Jan 12 13:00:17 2006
來提供些不同的方法
/* Method 1 : 混成一個 function */
window.onload=new Function("e","a();b();");
/* Method 2 : 另一種寫法 */
window.onload=function(e){a();b();};
/* Method 3 : 改成用註冊的方式 */
var _WLH = new Array();
function _IWL() { for(var i=0;i<arguments.length;i++) _WLH.push(arguments[i]);}
_IWL(a,b);
window.onload = function(e){for(var i in _WLH) _WLH[i](e); }
/* Method 4 : 也是用註冊,但不會蓋掉之前別人設的值 */
function _chain_winloader(hfunc) {
var wld = window.onload;
window.onload = function(e) {var old=wld;hfunc(e);if(old)old(e);}
}
_chain_winloader(a);
_chain_winloader(b);
※ 引述《netburst ()》之銘言:
: ※ 引述《bennylu (Benny)》之銘言:
: : 那就不要寫在window.onload
: : <body onload="a();b();c();d();e();">
: : 如果硬要用window.onload
: : 那就在a()執行完後執行b();
: : function a()
: : {
: : ....
: : b();
: : }
: 也可以寫成
: function all()
: {
: a();
: b();
: ...
: }
: 這樣感覺每個函數地位平等我個人看起來比較舒服
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.52
※ 編輯: TKirby 來自: 140.112.30.52 (01/12 13:02)
1F:推 ileadu:感謝大師回覆...您實在太強啦 01/12 21:46