3

DOM がロードされたかどうかを判断する必要がある JS コードがあります。DOM がロードされたときに JS コードを実行する方法がいくつかあることは知っています。

$(document).ready(function() { ... }); // Jquery version

document.body.onload = function() { ... } // Vanila JS way

次のような方法を探しています

function isDOMLoaded() {
    // Do something to check if DOM is loaded or not
    // return true/false depending upon logic
}

PS: 更新 (Post Answer Accept) jquery も同じアプローチを使用して、DOM がロードされているかどうかを確認します。ここで jquery.ready()の実装を見てください。

bindReady: function() {
    if ( readyBound ) {
        return;
    }

    readyBound = true;

    // Catch cases where $(document).ready() is called after the
    // browser event has already occurred.
    if ( document.readyState === "complete" ) {
        return jQuery.ready();
    }

    ...
4

3 に答える 3

17
function isDOMLoaded(){
 return document.readyState == 'complete';
}
于 2013-05-20T05:42:47.490 に答える
3

このようなものを使用できます

function isLoaded() {
    return (document.readyState === 'ready' ||
            document.readyState === 'complete')
}

readyとステータスを確認しcompleteます。

readyほんの一瞬しか存在しませんが、DOM の準備ができたら反映されます。ただし、ページが完全に読み込まれると、ステータスは「完了」に変更されます。準備完了のみをチェックすると関数が失敗するため、このステータスもチェックします。

于 2013-05-20T05:42:43.637 に答える
2

これはどう?

var flgDOMLoaded=false; //Set a global variable
 $(document).ready(function() { 
   flgDOMLoaded= true;
  // Some code
 });

function isDOMLoaded() {
   return flgDOMLoaded; // return it. 
  //You don't need this function at all. You could just access window.flgDOMLoaded
}
于 2013-05-20T05:41:22.733 に答える