0

前に、ウィンドウ上のDOMContentLoadedイベントを強制私は私のページのどこかに2個のスクリプト・タグを次のようしていると言う:は、jQueryのドキュメントの準備

<script> 
    window.addEventListener("DOMContentLoaded", 
     function() 
     { 
      console.log("DOM loaded"); 
     } 
    ); 
</script> 
... 
<script> 
    $(document).ready(
     function() 
     { 
      console.log("Document ready"); 
     } 
    ); 
</script> 

$().ready前DOMContentLoadedイベントが発生していることを強制する簡単な方法はありますか?

これは私の実際の問題の簡単な例です。私が直面している実際の問題は、DOMContentLoadedイベントが私のページのボディの下部に含まれているサードパーティ製のライブラリに登録されていて、それらをすばやく変更するためにあまりにも多くの$().readyコールがあることです。理論的には、window.addEventListenerdocument.addEventListenerに変更することはできませんが、私のページの頭にjQueryを含めているので、hereのように$().readyはすべてdocument.addEventListener("DOMContentLoaded"...)の前にまだ呼び出されています。 jQueryまたはこのサードパーティのライブラリ。可能であれば、第三者図書館に変更を加えることも避けたいと思います。 jQueryのは含まれていない可能性がある場合

答えて

1

あなたは両方 `holdReady`は`場合(typeof演算$()!= '未定義') `で呼び出しを囲むのに十分だろう、$.holdReady()

<script> 
    $.holdReady(true); 
    window.addEventListener("DOMContentLoaded", function() { 
     console.log("DOM loaded"); 
     $.holdReady(false); 
    }); 
</script> 
... 
<script> 
    $(document).ready(function() { 
     console.log("Document ready"); 
    }); 
</script> 
+0

を使用することができますか? –

+0

@JimmyP _ "jQueryが含まれていない可能性があります" _どういう意味ですか? '' DOMContentLoaded'イベントの前に質問 '.ready()'ハンドラが呼び出されているのではないですか? – guest271314

+0

ええ、ごめんなさい。それは元々の質問だったが、今私は好奇心が強い。私のページの1つに、jQueryがページに存在しないときにDOMContentLoaded'イベントを登録するこのサードパーティのライブラリが含まれていると、未定義のエラーがスローされます。 –

関連する問題