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 回答