父页面获取子页面元素:

注意: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')

子页面获取父页面元素:

 

第一、在iframe中查找父页面元素的方法:
$('#id', window.parent.document)

第二、在父页面中获取iframe中的元素方法:
$(this).contents().find("#suggestBox")

第三、在iframe中调用父页面中定义的方法和变量:
parent.method
parent.value

 $(window.parent.document.body) //麻烦的方法:

 

$($(window).eq(0)[0].parent.document).find('body'); ,忘了可以用前面的方法了

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打开的才有。

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

  1. 2014-10-28——iframe多层嵌套时获取元素总结

    同域: 父页面获取子页面元素: 注意:onload事件 jQuery获取:$("iframe").contents().find("holder")...... ...

  2. iframe多层嵌套时获取元素

    一.同域:1.父页面获取子页面元素:注意:onload事件jQuery获取:$("iframe").contents().find("holder")..... ...

  3. iframe多层嵌套时,Jquery获取元素

    在项目中,尤其是后台管理项目,会使用到iframe嵌套的网页,说起iframe,真的是个让人头疼的东西,能避开是最好避开.不然要请随身备好氧气瓶哈(因为管理和调试过程中往往会被气缺氧!!!哈哈哈~~~ ...

  4. Bootstrap中模态框多层嵌套时滚动条问题

    在使用Bootstrap中模态框过程中,如果出现多层嵌套的时候,如打开模态框A,然后在A中打开模态框B,在关闭B之后,如果A的内容比较多,滚动条会消失,而变为Body的滚动条,这是由于模态框自带的遮罩 ...

  5. vue中,对象数组多层嵌套时,更新数据更新页面

    vue中的对象和数组的元素直接赋值修改时,是不能响应到view中去的 1.对象更新 this.a={title:'列表1’}; this.a.title='列表2’; <h1>{{a.ti ...

  6. Android解决Fragment多层嵌套时onActivityResult无法正确回调的问题

    前言: Fragment也可以使用startActivityForResult方法去打开一个Activity,然后在其onActivityResult方法中处理结果,可是当Fragment嵌套的时候, ...

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

    如果一段html嵌套过多,在js中获取还是比较麻烦的,我写了几套方案,大家可以参考参考,如果你有好的方法,也分享出来,让我们瞧瞧. HTML: <!DOCTYPE html> <ht ...

  8. 一键切换皮肤的解决思想及iframe嵌套时寻找下级iframe的方法

    项目中有个一键切换皮肤的功能,感觉还不错,记录下,就是各颜色样式设置起来太复杂了,不知道有没有更简便的方法: 1.切换皮肤结构层 <li title="<s:text name= ...

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

    已知一个多层嵌套的json,取出所有父元素和子元素的id值 思路:因为不知道到底嵌套了多少层,递归有可能造成栈溢出.查询时间特别久的问题 所以先查询一次,判断是否有子节点,如果有,取出子节点并到父节点 ...

随机推荐

  1. 网络分析之networkx(转载)

    图的类型 Graph类是无向图的基类,无向图能有自己的属性或参数,不包含重边,允许有回路,节点可以是任何hash的python对象,节点和边可以保存key/value属性对.该类的构造函数为Graph ...

  2. 一句话知识:如何解决winform自动缩放产生的布局问题.

    转自http://www.cnblogs.com/KenBlove/articles/1281823.html有时候你会发现本来好好的WinForm程序在别的机器上显示的尺寸就不对了.这些问题主要发生 ...

  3. iOS开发中的http浅析

      至于为什么要进行HTTP请求我就不说了.本文主要对HTTP协议做了一些介绍,主要针对网络编程和面试. 先从流程开始说起 APP <---> 服务器 <---> 后台​ 1) ...

  4. Linux0.11内核--进程调度分析之1.初始化

    [版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5596746.html ] 首先看main.c里的初始化函数main函数里面有个函数是对进程调度 ...

  5. [翻译]当分发数据库增长到25G时如何解决

    有时候,分发数据库(Distribution Database)会增长得非常大,那么如何解决呢,请看Chris Skorlinski,  Microsoft SQL Server Escalation ...

  6. SQL Challenge ——快速找到1-100之间缺失的数

    有个经典的题目:1-100之间的数字(不重复)存放在表里,共95行一列,但是里面缺了5个数字,怎么用SQL最快找出那五个数字. 我们先来看看Oracle数据库如何实现,如下所示,我们先准备测试环境和数 ...

  7. ORACLE参数max_shared_servers空值与零的区别

    ORACLE数据库中的参数max_shared_servers,这是一个DBA很熟悉的参数,但是这个参数max_shared_servers为空值与为0有区别吗?这个细节可能很多人都没有注意过.如下所 ...

  8. sql server: sql script

    select ProductGUID,ProductName,ProjectGUID from dbo.Product /* F637A079-E22B-4E50-87E9-000147B1B1F4 ...

  9. send+recv注意事项

    [TOC] send 函数原型 ssize_t send( SOCKET s, const char *buf, size_t len, int flags ) 注意事项 待发送数据长度data_le ...

  10. 交叉编译总结 libosscore.a libcurl.a libmysqlclient.a

    把工程文件交叉编译到arm上运行,着实花费了一番功夫. 首先遇到的错误是 X uses VFP register arguments, B does not 百度了一下,发现是硬浮点和软浮点的问题,原 ...