在另一个 iframe 中找到一个 iframe?

Posted

技术标签:

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

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

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

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

使用 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 中测试 :(

【讨论】:

以上是关于在另一个 iframe 中找到一个 iframe?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 iFrame 的情况下在另一个页面内显示外部网站? [关闭]

不允许在另一台服务器上的 iFrame 中的标签或服务器链接上没有 robots.txt 索引? [关闭]

在 iframe 中提交字段

如何将一个HTML页面嵌套在另一个页面中

网站开发进阶 十 如何将一个html页面嵌套在另一个页面中

从 iframe 中获取 div 值