ホームページ  >  記事  >  ウェブフロントエンド  >  「iframe.load()」が失敗したときに iFrame の読み込みステータスを確実に確認する方法

「iframe.load()」が失敗したときに iFrame の読み込みステータスを確実に確認する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-25 06:19:02818ブラウズ

How to Reliably Verify an iFrame's Loading Status When `iframe.load()` Fails?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。