如果iframe刷新失败,则X

If iframe refresh failed, then X

本文关键字:失败 iframe 刷新 如果      更新时间:2023-09-26

我使用下面的脚本每60秒刷新我的<iframe>

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

如果刷新失败,我想显示不同的页面/<iframe>。例如,如果我没有连接到任何网络,那么显然任何页面刷新都会显示"page not found"错误。

相反,我想显示不同的<iframe>(例如tracker2)或不同的页面/消息/图像来表示"离线"。当然,<iframe>会一直刷新自己,直到有互联网连接。

我很确定那是不可能的,但是我可能错了。这可能吗?

如果您正在加载的<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);

你可以检查你的iframe的http代码,并取决于你可以呈现另一个页面

您可以使用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>