javascript - 通过框架通过ID查找后代元素

标签 javascript iframe

假设所有的框架都在同一个域中,我需要从给定的节点(或文档)开始,并搜索具有给定 ID 的元素。如果在当前文档中找不到,我需要递归(广度优先)搜索所有后代 iframe。

除非我遗漏了一些陷阱,否则我确定我可以编写此函数,但我确定有人已经完成了。

我没有在我的应用程序中使用 jQuery,所以虽然对其他 SO 读者来说这很好,但对我没有帮助。但是,我确实使用 Prototype,并且可以假定所有后代 iframe 都将包含原型(prototype)。

有什么建议吗?

最佳答案

我想你可以像这样递归地得到它:

function findElement(wdw, id)
{
    var el = wdw.document.getElementById(id);
    if(el) return el;
    for(var i=0; i<wdw.frames.length; i++)
    {
        var el = findElement(wdw.frames[i].window, id);
        if(el) return el;
    }

    return null;
}

并这样调用它:

findElement(window, "aa");

这是 jsFiddler 链接:http://jsfiddle.net/QxL7z/2/

关于javascript - 通过框架通过ID查找后代元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6527434/

相关文章:

jquery - 单击图像时在 Colorbox 中加载 iframe

javascript - 加载 iframe 和目标内容

javascript - HighChart 折线图未显示

javascript - 如何在从服务器获取数据的动态表的每一行中添加下拉列表?

iframe - 如何在尚不支持iframe的浏览器中处理“allow-modals”沙箱标志?

javascript - 使用 ajax 在 IFRAME 中加载页面

javascript - 如何使用 Javascript 或 JQuery 更改 HTML IFrame 元素属性

javascript - 客户端 React-Router 演示 : invariant violation

javascript - 我怎样才能用javascript解码URI?

javascript - 如何使用 java 脚本检索动态 CRM 自定义字段值?