iframe.contentWindow 属性:关于contentWindow和contentDocument区分
定义和用法
contentDocument 属性能够以 HTML 对象来返回 iframe 中的文档,可以通过所有标准的 DOM 方法来处理被返回的对象。
语法:frameObject.contentWindow,或者 iframeObject.contentWindow(不是jquery对象)
用iframe嵌套页面时,如果父页面要获取子页面里面的内容,可以使用contentWindow或者contentDocument,其区别如下:
1、contentWindow 这是个只读属性,返回指定的iframe的窗口对象。它虽然不是标准的一部分,但各个主流浏览器都支持。
2、contentDocument Firefox 支持,IE6,IE7都不支持,IE8开始支持,需要如此访问 document.frames['J_mainframe'].document。
兼容获取document对象:
var getIFrameDoc = function(){var iobj = document.createElement("iframe");document.getElementsByTagName("body")[0].appendChild(iobj);return iobj.contentDocument || iobj.contentWindow.document; }
基本使用:
1、document.getElementById("myiframe").contentWindow,得到iframe对象后,就可以通过contentWindow得到iframe包含页面的window对象,然后就可以正常访问页面元素了;
2、$("#myiframe")[0].contentWindow,jquery选择器获得iframe,先把jquery对象转换为DOM对象,或者使用get()方法转换;
3、$("#myiframe")[0].contentWindow.$("#dd").val(),可以在得到iframe的window对象后接着使用jquery选择器进行页面操作;
4、$("#myiframe")[0].contentWindow.username="zhangsan"; 可以通过这种方式向iframe页面传递参数,在iframe页面window.username就可以获取到值,username是自定义的全局变量;
5、在iframe页面通过parent可以获得主页面的window,接着就可以正常访问父亲页面的元素了;
6、parent.$("#frame_A")[0].contentWindow.document.getElmentById("#frame_B"); 同级iframe页面之间调用,需要先得到父亲的window,然后调用同级的iframe得到window进行操作;
//在子级iframe设置 父级 iframe ,或 孙级 iframe 高度。 function showIframeH(){var parentWin = parent.document.getElementById("test");if(!parentWin) return false;var sub = parentWin.contentWindow.document.getElementById("test2");if(!sub) return false;var thirdHeight = sub.contentWindow.document.body.offsetHeight; //第三层 body 对象sub.height = thirdHeight; //设置第二层 iframe 的高度var secondHeight = parentWin .contentWindow.document.body.offsetHeight; //第二层 body 对象parentWin .height = secondHeight; //设置第一层 iframe 的高度 }
一、在使用iframe的页面时,要操作这个iframe里面的DOM元素可以用:contentWindow、contentDocument
1、先获取iframe里面的window对象,再通过这个对象,获取到里面的DOM元素
例子:
var ifr = document.getElementById("iframe"); ifr.contentWindow.document.getElementById("XXXXX")<iframe src="a.html" id=""></iframe>
ifr.contentWindow 这里,返回的是iframe的window对象,所以后面可以接着调用document方法,再接着调用getElementByTagName。那么就可以对iframe里面的元素进行操作了。
二、在iframe本页面,要操作这个iframe的父页面的DOM元素(即嵌套这个iframe的页面)可以用:
window.parent、window.top(这里的TOP是获取的顶层,即有多层嵌套iframe的时候使用)
var ifr = document.getElementByTagName("iframe"); ifr.parent.document.getElementById("XXXXX")<iframe src="a.html" id=""></iframe>
实例:
top.$("iframe[name='iframeWindow']")[0].contentWindow.$("#inside_tableElement"),这样才能获取到iframe里的元素,
注意:top.$("iframe[name='iframeWindow']").eq(0).$("#inside_tableElement"),是获取不到的
再可以看看之前写的这篇博客:jquery 获取父窗口的元素、父窗口、子窗口
iframe.contentWindow 属性:关于contentWindow和contentDocument区分相关推荐
- js操作 ifarm contentWindow属性
document.getElementByid("AAA"),查找页面中id="AAA"的选项. 在页面中frameset将页面分为多个窗口 <ifram ...
- iframe的contentWindow属性使用
contentWindow属性是iframe对象或frame对象的专属属性.兼容各种浏览器,并返回window对象 作用是:以 HTML 对象来返回 iframe 或frame中的文档. conten ...
- frame或者iframe的contentwindow属性
contentwindow属性是指指定的frame或者iframe所在的window对象: <script> function fnnavigate() { for(i=0;i<do ...
- iframe的contentWindow属性
最近在给项目搭建功能的过程中遇到了个难题,因为在设计该项目时给的iframe子页面非常多,从头到尾数下来的话起码得有十多个子页面,但子页面多也并不是件好事 几乎每个子页面都需要用到父页面的中的方法,打 ...
- iframe的使用和 contentWindow、parent以及postMessage通信方式
问题: 如何进行消息通信(父发给子,子接收父的消息,也可父直接调用子的方法: 子发给父,父接收子的消息:) 如何找到指定的子或者父window(如果iframe层级过多),又如何在发送消息时不影响其他 ...
- ContentWindow属性的用法及作用
最近在给项目搭建功能的过程中遇到了个难题,因为在设计该项目时给的iframe子页面非常多,从头到尾数下来的话起码得有十多个子页面,当时搭页面的时候用了layui中的Tab选项卡插件,让用户可以通过点击 ...
- iframe的属性及其简单使用(点击标签切换页面)
iframe的相关属性 详细内容参考:HTML <iframe> 标签 属性 值 描述 align left right top middle bottom 不赞成使用.请使用样式代替. ...
- html框架iframe菜鸟,HTML DOM Frame/IFrame frameBorder 属性 | 菜鸟教程
Frame/IFrame frameBorder 属性 Frame/IFrame 对象 定义和用法 frameBorder 属性可设置或者返回 frame/iframe 元素的 frameborder ...
- Property ‘contentWindow‘ does not exist on type HTMLElement,类型htmlelement上不存在contentwindow属性
一.问题 Property 'contentWindow' does not exist on type HTMLElement 二.解决方法 /*** Property 'contentWindow ...
最新文章
- qt能使用logback_Spring boot使用logback实现日志配置
- 利用“栈”解决“出轨”问题
- 某网友发表如此言论:程序员基本都是diao丝,是农村进城务工人员!有资源有关系的都不干程序员!...
- 数据流图和数据字典 (笔记 )
- “巨杉数据库”获1000万美元B轮融资,DCM领投
- [bzoj3143] [HNOI2013]游走
- 类与接口(三)java中的接口与嵌套接口
- 手机java程序_郑州北大青鸟:用手机也能编写Java程序代码?
- java编写单词数_JAVA flink小试——单词计数
- c语言错误指导,c语言编程指导.pdf
- POJ 2385 Apple Catching
- mysql connect返回值_mysql_connect
- 银行离开IBM必死?国货10年内无法接盘
- 商业智能改变汽车行业
- 小车故障灯亮显示大全_原创案例丨17款迈锐宝XL缺缸故障
- netty实现mtqq_Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上
- 对话惠普亚太区高管:绿色智慧的中国战略
- hashcat详细使用教程
- VLC保存网络流到本地和fiddler下载视频
- Olny Flashlight
热门文章
- HDMI接口和TMDS传输标准详解
- javaweb JAVA JSP营养健康管理系统(膳食的合理搭配)健康管理系统-
- 【windows编程之对话框】对话框原理,对话框的创建
- 辉太郎看前端(继承)
- 迅为iTOP-3399开发板快速上手
- 计算机网络实验搭建小型局域网,小型局域网组建实验报告..doc
- WEB应用中的SESSION详解
- 宽网mp3录音混音器 绿色
- 大神之路-起始篇 | 第14章.计算机科学导论之【数据库】学习笔记
- 计算机物理地址win8,Win8系统怎么查看电脑物理地址(两种方法)