浏览 1920 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-20
说明 用途: 查询当前页面以及所包含的frame中id为传入的参数的对象,如本身页面为frame,还可查询上级页面中id为传入参数的对象。 参数:可传入对象id,以及对象本身 返回:返回所传id的对象
用法:如查询id为javaeye的对象
var xx = $$('javaeye'); 方法原码如下:
function $$(id){ if(typeof id == 'string'){ var obj = document.getElementById(id); if(obj)return obj; var p = window; //先搜索自己的子frame var fs = []; for(var k=0; k<p.frames.length; ++k){ fs.push(p.frames[k]); } for(var i=0; i<fs.length; ++i){ try{ obj = fs[i].document.getElementById(id); }catch(e){ obj = null; } if(obj)return obj; for(var k=0; k<fs[i].frames.length; ++k){ fs.push(fs[i].frames[k]); } } //找到最高层window while(p.parent != p){ p = p.parent; } obj = p.document.getElementById(id); if(obj)return obj; //frames var fs = []; for(var k=0; k<p.frames.length; ++k){ fs.push(p.frames[k]); } for(var i=0; i<fs.length; ++i){ try{ obj = fs[i].document.getElementById(id); }catch(e){ obj = null; } if(obj)return obj; for(var k=0; k<fs[i].frames.length; ++k){ fs.push(fs[i].frames[k]); } } alert('can not get object for:' + id); }else if(typeof id == 'object') return id; else alert('can not get object for:' + id); //可写成记录日志方法,或其它处理 }
请高手赐教,以使更加完善!!
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-01-25
帖子沉的好深,涝起来
|
|
返回顶楼 | |