javascript跨层查找frame对象

javascript跨层查找frame对象

月光魔力鸭

2018-08-31 17:00 阅读 868 喜欢 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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
最近一直在想着抓一些网盘数据,进行资料归拢,可是当我真正开始的时候.. 还是遇到了反爬,当然我本身就有心理预期,这是肯定会碰到的,只是没想到会在代理IP上耗费这么久,之前的时候也处理过代理IP ,可是由于一知半解,导致很多配置都不理解,debug全靠猜...
当一些业务必须通过横屏来实现,但是又没有原生来做,只能通过h5的时候怎么办?
web网站上总会有在文本域中提交代码的操作,那么如何处理呢?
现象:在IOS中,jsp页面绑定的点击事件,点击后延迟很大,接近1000ms,反应很慢
通过jspdf ,我们可以将页面或图片生成pdf下载下来,如果是一些复杂的页面,我们可以将页面转成图片,然后把图片加入到pdf中,生成并下载。
之前一直没面试过前端,今天有一个,先整理下需要问的问题和答案。这里都是一些简单的问题,关于当下比较流行的框架并没有涉及到..
在使用echarts 来做统计报表的时候,由于数量较多,准备将同类型的相同属性抽取出来,然后用来做默认属性的。结果发现一个问题
需求如下:有一张大图,需要显示大图中的一小部分,目前能知道的时候小图的宽高和坐标,同时大图有一个旋转角度可以知道,目标就是把小图正确的显示出来。