我正在练习使用Javascript导航DOM并遇到问题。我不知道跨网站脚本是不允许的,但我有一个问题。
如果需要,我可以发布HTML代码,但目前有一个简单的问题。
当我跑步时
iframe_dom = document.getElementsByTagName('iframe')[0]
console.log(iframe_dom)
这是打印出来的(缩写版)
<iframe style="width:100%;height:100%;"> .... </iframe>
#document
<html>
<head>..</head>
<body>
<iframe>...</iframe>
这就是我的预期。但是,当我尝试通过输入来导航树时:
iframe_dom.iframe
undefined
已退回。
如果我已将iframe的主体传递给变量,为什么我无法导航树?
答案 0 :(得分:0)
如何在浏览器之间完全保持一致,如果您在加载时执行脚本,它可能还不可用。 查看下面的Plunker。我基于此构建了它:http://xkr.us/articles/dom/iframe-document/
function getChildTitle() {
var oIframe = document.getElementsByTagName('iframe')[0];
var oDoc = (oIframe.contentWindow || oIframe.contentDocument);
if (oDoc.document) oDoc = oDoc.document;
console.log(oDoc.body.getElementsByTagName('h1')[0].innerHTML);
}
简而言之,从iframe元素,有时你需要contentDocument属性,有时候是contentWindow属性 - 取决于浏览器。取任何一个存在(或代码中不是假的)。在某些浏览器中,您可能需要使用该对象的文档属性。