iframe多层嵌套时获取元素总结

同域:

父页面获取子页面元素:

注意:onload事件

jQuery获取:
$("iframe").contents().find("holder")......;

(嵌套三层,或者更多时)
$(‘iframe‘).contents().find(‘iframe‘).contents().find("iframe")......

js获取:
window.frames["holder"].document 或者 window.frames[0].document(不推荐)

(嵌套三层,或者更多时)
window.frames[0].window.frames[0](......).document

补充拓展:(仅供参考)

document.frames 与 window.frames 之间的区别

document.frames 只有IE、Opera 支持,等同于 window.frames。用来取得当前页面内 window 对象的集合。

在 Firefox、Chorome、Safari中使用 document.frames 不能获取到 FRAME 元素

window.frames[‘myframe‘] 代替 document.frames(‘myframe‘)或document.frames[‘myframe‘]。

注意:window.frames只可写成window.frames[‘myframe‘]不能写成window.frames(‘myframe‘)

子页面获取父页面元素:

1、子页面获取iframe父页面的DOM

jQuery获取:
$("#holder",parent.document)

js获取:
parent.document.getElementById("holder")

2、子页面获取父页面里的其他iframe子页面里的DOM

jQuery获取:
$("#holder",window.parent.frames["holder"].document)

js获取:
window.parent.frames["holder"].document.getElementById("holder")

补充拓展:(仅供参考)
opener 与 parent 之间的区别

opener:

opener用于在window.open的页面引用执行该window.open方法的的页面的对象。例如:A页面通过window.open()方法弹出了B页面,在B页面中就可以通过opener来引用

A页面,这样就可以通过这个对象来对A页面进行操作。

parent:

parent用于iframe,frame中生成的子页面中访问父页面的对象。例如:A页面中有一个iframe或frame,那么iframe或frame中的页面就可以通过parent对象来引用A页面

中的对象。这样就可以获取或返回值到A页面中。

总结:
parent指父窗口,在FRAMESET中,FRAME的PARENT就是FRAMESET窗口。
opener指用WINDOW.OPEN等方式创建的新窗口对应的原窗口。
parent是相对于框架来说父窗口对象。
opener是针对于用window.open打开的窗口来说的父窗口,前提是window.open打开的才有。

跨域:

时间: 2024-08-28 02:09:21

iframe多层嵌套时获取元素总结的相关文章

iframe多层嵌套时获取元素

一.同域:1.父页面获取子页面元素:注意:onload事件jQuery获取:$("iframe").contents().find("holder")......; (嵌套三层,或者更多时)$('iframe').contents().find('iframe').contents().find("iframe")...... js获取:window.frames["holder"].contentWindow.documen

Bootstrap中模态框多层嵌套时上下滚动条问题

<button type="button" class="btn btn-white" id="closeTree">关闭</button> <script type="text/javascript"> $(function(){ $("#closeTree").click(function(){ $("#areaTreeModal2").modal

mybatis框架中parameterType为Map的用法 和 数据库语句多层嵌套

当需用到参数Map里面的数据时,直接写传进去的key,例Map map = new HashMap(); map.put("currPage1",10); 在mybatis的xml文件中需要引用的地方写上currPage1,如下文 数据库语句多层嵌套时,先执行最里层的语句,表的别名定义语句的最里层,红色字体是多表联查时定义的查询最大记录数 例: <select id="query" parameterType="java.util.Map"

元素多层嵌套,JS获取问题

如果一段html嵌套过多,在js中获取还是比较麻烦的,我写了几套方案,大家可以参考参考,如果你有好的方法,也分享出来,让我们瞧瞧. HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>元素多层嵌套,JS获取问题</title> </head> <body> <div

js解析多层嵌套的json,取出所有父元素属性和遍历所有子元素

已知一个多层嵌套的json,取出所有父元素和子元素的id值 思路:因为不知道到底嵌套了多少层,递归有可能造成栈溢出.查询时间特别久的问题 所以先查询一次,判断是否有子节点,如果有,取出子节点并到父节点上,并动态更改数据长度,这样无限循环处理json取出所有id menuIdInit () { var _this = this; var _menu = _this.menus; var menuId = []; var len = _menu.length; for(var i = 0; i <

iframe父页面和子页面获取元素和js变量

父页面获取iframe页面元素和变量 获取方法:$("#id")[0].contentWindow.showInfo(): 获取元素:  $("#id").contents().find("#suggestBox"); iframe子页面获取父页面元素变量 window.parent.showInfo(); 原文地址:https://www.cnblogs.com/yafuture/p/10774121.html

selenium获取元素内容,iframe切换,和常用方法

获取元素信息 1. text 属性,显示该元素在web页面显示出来的文本内容 2. get_attribute方法 获取某个属性的值: element.get_attribute(元素属性) element.get_attribute('href') element.get_attribute('style') 获取该元素对应HTML源代码: element.get_attribute('outerHTML') 获取该元素的内部部分的HTML源代码: element.get_attribute(

关于微信小程序多层嵌套渲染列表以及嵌套列表中数据的获取

起因:意图是想实现类似于安卓viewpager那样的效果,想到了用微信小程序的swiper组件,但如果每个swiper-item里都只用一个wx:for来渲染数据的话实在是太慢了,就想到多层嵌套数据渲染来提高效率. 直接上代码 wxml: <view wx:for="{{one}}" wx:key="id"> <view>----{{item.name}}----</view> <view wx:for="{{it

常用获取元素Driver总结

1.在 Windows 设置临时环境变量 cmd命令窗口 输入 path=%path%;E:\soft\python-3.5.2-embed-win32 永久配置,在系统变量下找到path,在Path的最后面添加Python的安装目录 D:\Python34,同样在PATHEXT中添加 .PY;.PYM 然后,输入python 出现版本信息就成功了. 2.CMD命令窗口,清屏的方法 import os os.system('cls') 如果不要返回值0就是: import os i=os.sys