说明
用途: 查询当前页面以及所包含的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); //可写成记录日志方法,或其它处理 }
请高手赐教,以使更加完善!!