window.onload は、最初に読み込まれたものが後から読み込まれたものに上書きされてしまうため、ひとつのページで1回しか使用できない。
そのため、いくつもの javascript を使用していると、動かないものがでてきてしまう。
そこで、window.onload が複数使用されている場合の代替案をいくつかご紹介します。
window.onload が複数使用されていて片方が動かない場合は、片方の window.onload を変更します。
代替案 其の壱
例えば、下記が一方の window.onloadだとすると・・・window.onload = function() {
init();
}
上記のような場合、下記のように変更init();
}
if (window.addEventListener) { // W3C DOM
window.addEventListener('load', function() {
init();
}, false);
} else (window.attachEvent) { // IE 用
window.attachEvent('onload', function() {
init();
});
}
なぜこんなに長くなるのかと言うと、addEventListener は、IE では使用できないため IE の場合は、使用できる attachEvent を使用するたに条件分岐させるからです。window.addEventListener('load', function() {
init();
}, false);
} else (window.attachEvent) { // IE 用
window.attachEvent('onload', function() {
init();
});
}
代替案 其の弐
上記は長すぎて嫌だという方で、jQuery を既に使用している場合 または、使用する場合$(function(){
init();
});
こんな感じにして、jquery.js を読み込んでいればOKinit();
});
代替案 其の参
または、jQuery は使用していないが、prototype は既に使用していると言う場合 または、使用する場合Event.observe(window, 'load', function(){
init()
}, false);
こんな感じにして、prototype .js を読み込んでいればOKinit()
}, false);
※ init() の後ろに、「;」(セミコロン)が無いのに注意!
以上、3種の代替案でした。
ペコリ(o_ _)o))
人気度 : 11 %





関係のある記事
No user の書き込みがあります
コメントほしぃ~よぉ~ σ(^◇^;)