在另一个 iframe 中找到一个 iframe?
Posted
技术标签:
【中文标题】在另一个 iframe 中找到一个 iframe?【英文标题】:Finding an iframe within another iframe? 【发布时间】:2011-10-08 04:40:02 【问题描述】:我有父母的id
,但没有孩子iframe
。
有没有办法在父 iframe
中返回 iframe
?
或者,特定iframe
中的所有iframe
s?
使用 jQuery 查找带有$('iframe')
的元素似乎不起作用。
【问题讨论】:
【参考方案1】:如果iframe
的src
属性具有相同的域、协议和端口,则您已设置。如果没有,因为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 的情况下在另一个页面内显示外部网站? [关闭]