iframe的文档为null,即使其contentwindow不是

时间:2018-06-30 10:48:02

标签: javascript html iframe

我一直在尝试使用iframe将跨域网页加载到我的网站上,但无法正常运行。加载网站时,有时iframe根本不会加载网页,而加载时,其documentnull
这是脚本文件(包含在<body>的末尾)

var iframe = document.getElementById('myFrame');

iframe.onload = function() {
    alert('iframe loaded!');
    if(iframe.contentWindow)
    {
        alert('contentWindow checked');
    }
    if(iframe.contentWindow.document)
    {
        alert('document checked');
    }
}

加载页面时,我只会得到“加载iframe!”和“ contentWindow已检查”警报。当网页根本无法加载时,也会发生这种情况。由于某些原因,即使网页在document中正常加载,null始终是iframe
我正在使用Chromium网络浏览器。

1 个答案:

答案 0 :(得分:0)

contentWindow属性返回由iframe元素生成的Window对象(通过window对象,您可以访问文档对象,然后可以访问文档的任何元素)。您可以使用此Window对象访问iframe的文档及其内部DOM。该属性是只读的。因此是iframe.contentDocument。

var iframe = document.getElementById('myFrame');

iframe.onload = function() {
    alert('iframe loaded!');
    let contentWindow = (iframe.contentWindow || iframe.contentDocument) //this is better approach
    if(iframe.contentWindow)
    {
        alert('contentWindow checked');
    }
    if(iframe.contentDocument)
    {
        alert('document checked');
    }
}