美文网首页
递归遍历嵌套的iframe中document

递归遍历嵌套的iframe中document

作者: 二枚目 | 来源:发表于2021-08-16 17:34 被阅读0次

起因是在模态框showModalDialog获取父级document后再获取元素时发现拿到的是null,原因是该页面被作为iframe嵌套在另外的页面里了。此时在模态框下通过window.parent.document获取的是最外层页面的document,可以通过以下代码递归遍历所有嵌套的iframe来获取dom元素:

 $(function() {
      listIframe(window.parent.document);
});
function listIframe(doc) {
    //需判断传入document是否为空
    if(doc) {
        //获取该document下的目标元素,存在的话再执行方法
        var p2divs = doc.getElementsByName("P2");
        if(p2divs && p2divs.length>0){
            p2divs[0].click();
        }
        var iframeTemp = doc.getElementsByTagName("iframe");
        if(iframeTemp && iframeTemp.length>0){
            for(var k=0; k<iframeTemp.length; k++){
                var iframeDoc = iframeTemp[k].contentDocument;
                listIframe(iframeDoc);
            }
        }
    }
}

如果不想粗暴的遍历所有iframe获取所有document来得到元素的话可以加条件判断是否自己目标iframe的id。

附:获取目标div下的所有input标签DOM,此时返回的是数组,需遍历或通过下标取值。document.getElementById("targetDiv").getElementsByTagName('INPUT')

相关文章

  • 递归遍历嵌套的iframe中document

    起因是在模态框showModalDialog获取父级document后再获取元素时发现拿到的是null,原因是该页...

  • 二叉树遍历

    先序遍历——[递归、非递归] 中序遍历——[递归、非递归] 后序遍历——[递归、非递归] 层次遍历——[递归、非递归]

  • 递归遍历

    数据加和,使用递归遍历,对任何的子嵌套都有用

  • 树的遍历

    节点结构: 先序遍历 递归 非递归 后序遍历 递归 非递归 中序遍历 递归 非递归 层序遍历 类库 有了上述遍历算...

  • 二叉树三种遍历的实现(递归)

    前序递归遍历算法:访问根结点-->递归遍历根结点的左子树-->递归遍历根结点的右子树 中序递归遍历算法:递归遍历根...

  • 二叉树的前中后三种遍历(递归、非递归和Morris)

    前序遍历 递归版本 非递归版本 中序遍历 递归版本 非递归版本 Morris 遍历待补充 后序遍历 递归版本 非递...

  • 二叉树的遍历算法

    递归版本 先序遍历: 中序遍历: 后序遍历: 非递归版本 先序遍历: 中序遍历: 后序遍历: 层次遍历:

  • 二叉树递归非递归遍历算法整理

    一、二叉树前序遍历 1 前序递归遍历 2.前序非递归遍历 一、二叉树中序遍历 2.中序递归遍历 1.中序非递归遍历...

  • 考研--二叉树

    1、叉树的层次遍历 2、前序遍历 递归 迭代 3、中序遍历 递归 迭代 4、后续遍历 递归 迭代 后续遍历的做法如...

  • 二叉树遍历

    二叉树的遍历 1. 前序遍历 1.1 递归前序遍历 1.2 非递归前序遍历 2 中序遍历 2.1递归遍历 2.2非...

网友评论

      本文标题:递归遍历嵌套的iframe中document

      本文链接:https://www.haomeiwen.com/subject/fpambltx.html