2

次のスクリプトを使用して、<iframe>60 秒ごとに更新しています。

<script type=text/javascript>
setInterval(function() {
    document.getElementById("tracker").src += "";
}, 60000);
</script>

別のページを表示したい /<iframe>更新に失敗した場合。たとえば、どのネットワークにも接続していない場合、明らかにページを更新すると「ページが見つかりません」というエラーが表示されます。

<iframe>代わりに、「オフライン」と言う別のtracker2ページ/メッセージ/画像を表示したいと思います。もちろん、<iframe>インターネットに接続されるまでは更新を続けます。

それは不可能だと確信していますが、間違っているかもしれません。出来ますか?

4

3 に答える 3

1

ロードしている が別のドメインにある場合は、<iframe>できません。それ以外の場合は、Ajax を使用してステータスを確認できます。

var rq = new XMLHttpRequest();

rq.open('GET', document.getElementById('tracker').src, true);

rq.onreadystatechange = function() {
    if(rq.readyState === 4) {
        if(rq.status === 200) {
            // All is well
        } else {
            // Show your backup element
        }
    }
};

rq.send(null);
于 2012-12-23T18:07:49.913 に答える
0

iframe の http コードを確認でき、それに応じて別のページをレンダリングできます

于 2012-12-23T18:00:55.853 に答える
0

Jquery ajax を使用して、ページ コンテンツを読み込み、ページ ステータスを確認できます。例えば:

<script type=text/javascript>

setInterval(loadIframe, 60000);

function loadIframe()
{

$.ajax({
    type: 'GET',
    url: 'document.getElementById('tracker').src',    
    success: function(data){
        alert('horray! 200 status code!');
        document.getElementById("tracker").src += "";
    },
    error: function(data){
        //get the status code
        if (code == 400) {
            alert('400 status code! user error');
        }
        if (code == 500) {
            alert('500 status code! server error');
        }
    },
});
}

</script>
于 2012-12-23T18:07:03.820 に答える