在某些时候我们的页面可能嵌入了多层的iframe,而有时我们可能有这样的需求:我们需要方便快捷的通过元素ID或类名来寻找到指

定的元素,而此元素可能存在于这些iframe中的某个iframe中,如果我们一层层的去理清其层次关系可能比较费时间,所以此时我们希望有

一个方便快捷的公用方法来一劳永逸的解决此问题,所以博主写了一个递归iframe来选择其中指定元素的方法。

以下是个人写的递归寻找iframe元素的方法,如有不对的地方还请留言指出!!!

/**
 * @description 从某个iframe开始递归下面的所有iframe来寻找指定元素对象
 * @param doc 指定的iframe的dom对象
 * @param id 要查找的元素的id
 * @author NoteShare
 */
function cycleIframe(doc,id){
	try{
		var resultObj = $("#" + id,doc)[0];
		//如果找到则直接返回,如果没有找到则遍历底层iframe进行寻找
		if(resultObj){
			return resultObj;
		}else{
			var sunIframes = doc.getElementsByTagName("iframe");
			if(sunIframes.length > 0){
				for(var i = 0;i < sunIframes.length ;i ++){
					var result_tem =  cycleIframe(sunIframes[i].contentWindow.document,id);
					if(result_tem){
						return result_tem;
					}
				}
			}else{
				return null;
			}
		}
	}catch (e) {
	}
}

作者:星辰 时间:2016-09-27 浏览 945评论 0 赞 0砸 0 标签: 前端 demo javascript
评论
还可以再输入500个字

请您注意

·自觉遵守:爱国、守法、自律、真实、文明的原则
·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·您在NoteShare上发表的作品,NoteShare有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款