2016-09-08 5 views
0

できるだけ早くページにアクセスする必要があるスクリプトがあります。これは多くのサイトで使用されており、一貫して実装されていません。 DOMの準備が整った後にページが読み込まれている可能性がありますので、document.writeを安全に使用できるとは限りません。 (document.readyState === 'loading')をチェックし、trueならdocument.write else appendChildを使用するのは安全ですか?document.write check readyState

<script> 
 
var js = document.createElement('script'); 
 
js.src = 'http://domain.com/script.js'; 
 

 
if (document.readyState === "loading") { 
 
    document.write(js.outerHTML); 
 
} else { 
 
    document.body.appendChild(js); 
 
} 
 
</script>

+0

DOMContentLoadedイベント([MDN](https://developer.mozilla.org/en/docs/Web/Events/DOMContentLoaded))を探すことをお勧めします。これはあなたが探しているものかもしれません。このイベントが発生した場合は、AppendChildを使用します。さもなければ、あなたのコードはうまくいくはずです。 –

答えて

0

私はあなたのコードが完全に正しいと思います。 MDN Document.readyState についてdocumen.readyStateのドキュメントを確認しましたが、正しく動作するはずです。

+0

DOMを上書きするため、対話式のチェックを削除しました。私はローディングをチェックすることに何の問題もなかったが、私はちょっと安心したかった。 – fmx67