一尘不染

从主文档中的JavaScript获取IFrame的文档

javascript

我有这个HTML代码:

<html>
  <head>
    <script type="text/javascript">
      function GetDoc(x)
      {
        return x.document ||
          x.contentDocument ||
          x.contentWindow.document;
      }

      function DoStuff()
      {
        var fr = document.all["myframe"];
        while(fr.ariaBusy) { }
        var doc = GetDoc(fr);
        if (doc == document)
          alert("Bad");
        else 
          alert("Good");
      }
    </script>
  </head>
  <body>
    <iframe id="myframe" src="http://example.com" width="100%" height="100%" onload="DoStuff()"></iframe>
  </body>
</html>

问题是我收到消息“错误”。这意味着iframe的文档未正确获取,而GetDoc函数实际返回的是父文档。

如果您告诉我在哪里犯错,我将不胜感激。(我想将文档托管在IFrame中。)

谢谢。


阅读 334

收藏
2020-05-01

共1个答案

一尘不染

您应该可以使用以下代码访问IFRAME中的文档:

document.getElementById('myframe').contentWindow.document

但是,如果框架中的页面是从其他域(例如google.com)加载的,则将无法执行此操作。这是因为浏览器的“相同来源策略”。

2020-05-01