4

ページ全体が読み込まれた後、スクリプトが完了したら、スクリプトを実行したいと思います。

現在の方法は次のとおりです。

window.onload=document.getElementById('loaded').value=1;

一部の画像はまだ読み込まれており、ページの読み込みが完全に完了していないため、これは適切ではありません。私が間違っていることは何ですか?

確かに、ChromeとFirefoxでは機能しません。後でコードを起動すると、ステータス204が返され、これにより将来の読み込みがブロックされます。ただし、この204ステータスは、ページの読み込みが完了する前に返されます。したがって、ページが実際に読み込まれた後にコードを実行する必要があります。

編集

フレームブレイクを行うページを設定します

<iframe id="myframe" height=1 width=1></iframe> 
<script type="text/javascript"> 
window.onload=document.getElementById('myframe').src='http://link to a frame braker page';
</script>

上記のコードをページに配置すると、ページが完全に読み込まれる前にiframeが読み込まれます。iframeページにアラートを配置し、親ページに大きな画像などが含まれている低速のサーバーで試してみてください。

4

3 に答える 3

4

イベントは、画像が読み込まれるのwindow.onloadを待ってから発生する必要があります。

load イベントは、ドキュメントの読み込みプロセスの最後に発生します。この時点で、ドキュメント内のすべてのオブジェクトが DOM にあり、すべての画像とサブフレームの読み込みが完了しています。

ソース: Mozilla デベロッパー センター: window.onload

詳細については、次のスタック オーバーフローの投稿をご覧ください。


アップデート:

実装が機能しない理由は、別の回答で bobinceによって特定されました。解決策は、次を使用することです。

window.onload = function() {
    document.getElementById('loaded').value = '1';
};
于 2010-04-12T10:57:57.720 に答える
4

window.onload=document.getElementById('loaded').value=1;

それを関数に変換するのを忘れました。あなたが言っていることは次のとおりです。

document.getElementById('loaded').value= 1;
window.onload= 1;

明らかに、負荷検出器としてはあまり効果的ではありません。あなたが意味したのはおそらく次のとおりです。

window.onload= function() {
    document.getElementById('loaded').value= '1';
};
于 2010-04-12T11:57:21.447 に答える
-1

Jquery を使用できる場合は、FrameReadyプラグインをご覧ください。このSOの質問を
確認してください。詳細については

于 2010-04-12T10:59:58.720 に答える