iFrame の読み込みステータスを理解する
完了時にアクションを実行したり、読み込みの失敗を検出したりするには、iFrame の読み込み状態を確認することが不可欠です。この記事では、特定の制約を使用して iFrame のロード状態を判断するという課題に対処します。
次のシナリオを考えてみましょう。ID が「myIframe」の iFrame が、提供されたコードを使用してロードされます。ただし、読み込み時間は変動するため、「iframe.load()」イベントの使用が妨げられます。
解決策: 反復チェック
この問題を克服するには、反復チェックを使用します。というアプローチを導入することが可能です。次のコード スニペットは、この戦略を例示しています:
<code class="javascript">function checkIframeLoaded() { // Get a handle to the iframe element var iframe = document.getElementById('i_frame'); var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; // Check if loading is complete if (iframeDoc.readyState == 'complete') { //iframe.contentWindow.alert("Hello"); iframe.contentWindow.onload = function() { alert("I am loaded"); }; // The loading is complete, call the function we want executed once the iframe is loaded afterLoading(); return; } // If we are here, it is not loaded. Set things up so we check the status again in 100 milliseconds window.setTimeout(checkIframeLoaded, 100); } function afterLoading() { alert("I am here"); } window.onload = checkIframeLoaded();</code>
このコードは、iFrame のドキュメントの "readyState" プロパティを繰り返しチェックし、必要なアクション (警告メッセージの表示など) を実行する前に読み込みが完了していることを確認します。 iFrame がロードされると、「afterLoading()」関数が呼び出されます。
以上が「iframe.load()」が失敗したときに iFrame の読み込みステータスを確実に確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。