使用Javascript访问iframe

时间:2015-12-11 19:12:59

标签: javascript

我正在练习使用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的主体传递给变量,为什么我无法导航树?

1 个答案:

答案 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属性 - 取决于浏览器。取任何一个存在(或代码中不是假的)。在某些浏览器中,您可能需要使用该对象的文档属性。

http://plnkr.co/edit/cSRD0qh5kntYR6aS8f1H