我一直在尝试使用iframe
将跨域网页加载到我的网站上,但无法正常运行。加载网站时,有时iframe根本不会加载网页,而加载时,其document
是null
。
这是脚本文件(包含在<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网络浏览器。
答案 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');
}
}