【问题标题】:Finding an iframe within another iframe?在另一个 iframe 中找到一个 iframe?
【发布时间】:2011-10-08 04:40:02
【问题描述】:

我有父母的id,但没有孩子iframe

有没有办法在父 iframe 中返回 iframe

或者,特定iframe 中的所有iframes?

使用 jQuery 查找带有$('iframe') 的元素似乎不起作用。

【问题讨论】:

    标签: javascript jquery iframe


    【解决方案1】:

    如果iframesrc 属性具有相同的域、协议和端口,则您已设置。如果没有,因为Same Origin Policy,你什么也做不了。

    假设您没有违反政策...

    常规 JavaScript

    var iframe = document.getElementsByTagName('iframe')[0],
        iframeDocument = iframe.contentWindow || iframe.contentDocument,
        internalIframes = iframeDocument.getElementsByTagName('iframe');
    

    你需要使用||短路评估漏洞,因为IE是不同的。

    jQuery

    var internalIframes = $('iframe:first').contents().find('iframe');
    

    【讨论】:

    • +1(相对 jQuery 新手)我一直在尝试在动态生成(和随机命名)<iframe> 中提取动态生成的<svg>。发挥了作用(幸运的是 SOP 不适用,因为没有 src 属性 - 框架充满了 JS API)。
    【解决方案2】:

    var childFrames = frames['parentId'].frames

    进行递归并从 top.frames 开始可能也适合您的需求......并且具有更少的 DOM 沉重的“getElementsByTagName”

    或者如果您在子 i 框架中,但您只需要获取框架上的句柄,这将为您获取 id:window.frameElement.id

    **仅在 IE 中测试 :(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 2012-02-18
      相关资源
      最近更新 更多