javascript跨层查找frame对象

javascript跨层查找frame对象

月光魔力鸭

2018-08-31 17:00 阅读 666 喜欢 0 查找frame js获得frame

在开发过程中经常会碰到跨frame 去操作的需求,那么如何获得这个frame呢,这里写了一个工具类,用来通过name获得frame的jq对象; 以下代码是基于jquery的基础上实现的,so...引入jq是必须的; 看剑--->

//根据name获得frame的jq对象,直接调用: var $frame = frameTool.findFrameByName('frameName');
var frameTool = {
    findFrameByName : function(name){
        var w = window.top.document;
        //向下查找
        var num = 0;
        var $iframes = $(w).find('iframe');
        var result = frameTool.findFrameByNameOfArr($iframes,name,0);
        return result;
    },
    frameLevel : 5,//frame 层级
    findFrameByNameOfArr : function(arr,name,num){
        num++;
        if(num == frameTool.frameLevel){
            return null;
        }
        var result = null;
        for(var i=0;i<arr.length;i++){
            var temp = arr[i];
            if($(temp).attr('name') == name){
                result =  $(temp);
                break;
            }else{
                var tempArr = $(temp).contents().find('iframe');
                if(tempArr.length>0){
                    result = frameTool.findFrameByNameOfArr(tempArr,name,num);
                    if(result == null){
                        continue;
                    }else{
                        break;
                    }
                }else{
                    continue;
                }
            }
        }
        return result;
    }
};
//求大师指正..优化代码

转载请注明出处: https://chrunlee.cn/article/js-frame-check.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
在文件上传的时候,经常会对文件的mime进行限制,比如图片 image/jpg 等,让用户可以选择图片,而不是其他的文件。
在开发过程中多个页面使用的一个小工具类,简单完善了下,还算不错,给各位提供下小思路。
在项目开发过程中,分页是少不了的,之前封装了一个分页组件,样式是基于bootstrap的样式,当然也可以自己来修改
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为(a,b),同样的,a,b,c的最大公约数记为(a,b,c),多个整数的最大公约数也有同样的记号。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。与最大公约数相对应的概念是最小公倍数,a,b的最小公倍数记为[a,b]。
业务中有一段涉及到处理canvas的图片然后将内容进行上传,后测试发现在IE中不好使哎...
codewars上的一个题目,这里记录下解决方法。
web网站上总会有在文本域中提交代码的操作,那么如何处理呢?
问题是由一个BUG引起的,功能中有使用国际化组件,用的是jquery.i18n,在chrome上、ff上都没有什么问题,问题出在了IE上。万恶的IE..