【问题标题】:How to get an element from an iframe如何从 iframe 中获取元素
【发布时间】:2014-01-04 03:51:02
【问题描述】:

我想使用 JavaScript 从 iframe 中获取元素。我尝试了以下方法:

var iframe = document.getElementById("iframe id");

var iframeWindow = iframe.contentWindow || iframe.contentDocument.parentWindow;

 iframe.onload = function(){


        alert(iframeWindow.getElementById('notice'));

    };

谁能帮我搞定这个工作?

跨域

感谢回复

【问题讨论】:

  • irfame src 在同一个域上吗?您发布的内容应该有效,会发生什么? (你也应该接受一些答案!)
  • 取消删除它,我读到的原始问题是询问如何获取 iframe 参考

标签: javascript iframe


【解决方案1】:

假设它们都在同一个域上;

var ifr = document.getElementById('the_iframes_id');
//or window.frames[x].
var doc = ifr.contentDocument || ifr.contentWindow.document;
alert(doc.getElementById('notice'));

如果不在同一个域中,出于安全原因,您无法访问它。

【讨论】:

  • 我不会做跨域这帮不了我
  • @jayesh:没有什么可以帮助你,请阅读same origin policy
【解决方案2】:

如果您想跨域执行此操作,那么您很不走运。 Javascript 的安全模型不允许这样做。

我不知道您要完成什么,但您可以通过服务器端脚本获得所需的内容。 Perl/PHP/Python/Ruby/whatever 脚本通常可以检索您需要的任何网页。然后它可以解析出您需要的位并通过 AJAX 调用将其返回给您的 Javascript。

当然这比仅仅使用 JS 更复杂,并且假设 iframe 的内容不是动态的,此时基于 cookie 或其他会话的东西。

【讨论】:

    【解决方案3】:
    document.getElementById('iframeResult').contentWindow.document.getElementById('buttonId')
    

    iframeResult 是 iframe 的 ID,buttonId 是元素的 ID

    【讨论】:

      猜你喜欢
      • 2010-11-08
      • 2016-09-02
      • 1970-01-01
      • 2017-06-14
      • 2011-12-11
      • 2018-01-13
      • 2021-09-04
      相关资源
      最近更新 更多