ホームページ >ウェブフロントエンド >jsチュートリアル >Window.onload ロードの問題と解決策 (パート 2)_JavaScript スキル

Window.onload ロードの問題と解決策 (パート 2)_JavaScript スキル

WBOY
WBOYオリジナル
2016-05-16 18:50:27914ブラウズ

前回の記事の続き、その他の方法:
1. IEではonreadystatechangeイベントでも判定可能
http://www.thefutureoftheweb.com/blog/adddomloadevent
ここに書いてあります。 Jesse Skinner 著 さまざまなブラウザの onload 問題を解決するために、独立したスクリプト関数が作成されました。
http://img.jb51.net/jslib/adddomloadevent.js

コードをコピーコードは次のとおりです:

/*
* (c)2006 Jesse Skinner/Dean Edwards/Matthias Miller/John Resig
* Dan Webb の domready.js プロトタイプ拡張機能に感謝します。
* および Simon Willison の addLoadEvent
*
* 詳細については、次を参照してください:
* http://www.thefutureoftheweb.com/blog/adddomloadevent
* http://dean.edwards .name/weblog/2006/06/again/
* http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype
* http: //simon .incutio.com/archive/2004/05/26/addLoadEvent
*
*
* 使用方法: addDOMLoadEvent を関数で 1 回以上呼び出します。つまり、
*
* function something () {
* // 何かをする
* }
* addDOMLoadEvent(something)
*
* addDOMLoadEvent(function() {
* // その他のことを行うスタッフ
* });
*
*/

addDOMLoadEvent = (function(){
// イベント関数スタックを作成
varload_events = [],
load_timer,
script,
done,
exec,
old_onload,
init = function () {
done = true;
clearInterval(load_timer);

// スタック内の各関数を追加された順序で実行します
while (exec =load_events.shift())
exec(); >
if (script) script.onreadystatechange = '';

return function (func) {
// init 関数がすでに実行されている場合は、この関数を実行します。そして stop
if (done) return func();

if (!load_events[0]) {
// Mozilla/Opera9 の場合
if (document.addEventListener)
document.addEventListener ("DOMContentLoaded", init, false);

// Internet Explorer の場合
/*@cc_on @*/
/*@if (@_win32)
ドキュメント。 write("