获取跨域iframe的响应状态代码?

时间:2015-05-12 13:11:07

标签: javascript iframe cross-domain

我的网站上有一个指向第三方页面的iframe(即不在我的域名上,我对他们的服务器没有任何控制权)。

我希望能够检查他们的网站是否在iframe中正确加载。可能存在以下情况 -

  • 被某些防火墙阻止
  • 他们的服务失败了。

在这种情况下,我可以在iframe中显示正确的错误消息。我希望能以某种方式找出iframe的响应状态代码。我怎样才能实现这样的目标呢?

1 个答案:

答案 0 :(得分:0)

试试这个。

<script>
function checkIframeLoaded() {
    // Get a handle to the iframe element
     iframe = document.getElementById('your_iframe');

    var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;

    // Check if loading is complete
    if (  iframeDoc.readyState  == 'complete' ) {

        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");
}
</script>

<body onload="checkIframeLoaded();">