定义和用法

  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区分相关推荐

  1. js操作 ifarm contentWindow属性

    document.getElementByid("AAA"),查找页面中id="AAA"的选项. 在页面中frameset将页面分为多个窗口 <ifram ...

  2. iframe的contentWindow属性使用

    contentWindow属性是iframe对象或frame对象的专属属性.兼容各种浏览器,并返回window对象 作用是:以 HTML 对象来返回 iframe 或frame中的文档. conten ...

  3. frame或者iframe的contentwindow属性

    contentwindow属性是指指定的frame或者iframe所在的window对象: <script> function fnnavigate() { for(i=0;i<do ...

  4. iframe的contentWindow属性

    最近在给项目搭建功能的过程中遇到了个难题,因为在设计该项目时给的iframe子页面非常多,从头到尾数下来的话起码得有十多个子页面,但子页面多也并不是件好事 几乎每个子页面都需要用到父页面的中的方法,打 ...

  5. iframe的使用和 contentWindow、parent以及postMessage通信方式

    问题: 如何进行消息通信(父发给子,子接收父的消息,也可父直接调用子的方法: 子发给父,父接收子的消息:) 如何找到指定的子或者父window(如果iframe层级过多),又如何在发送消息时不影响其他 ...

  6. ContentWindow属性的用法及作用

    最近在给项目搭建功能的过程中遇到了个难题,因为在设计该项目时给的iframe子页面非常多,从头到尾数下来的话起码得有十多个子页面,当时搭页面的时候用了layui中的Tab选项卡插件,让用户可以通过点击 ...

  7. iframe的属性及其简单使用(点击标签切换页面)

    iframe的相关属性 详细内容参考:HTML <iframe> 标签 属性 值 描述 align left right top middle bottom 不赞成使用.请使用样式代替. ...

  8. html框架iframe菜鸟,HTML DOM Frame/IFrame frameBorder 属性 | 菜鸟教程

    Frame/IFrame frameBorder 属性 Frame/IFrame 对象 定义和用法 frameBorder 属性可设置或者返回 frame/iframe 元素的 frameborder ...

  9. Property ‘contentWindow‘ does not exist on type HTMLElement,类型htmlelement上不存在contentwindow属性

    一.问题 Property 'contentWindow' does not exist on type HTMLElement 二.解决方法 /*** Property 'contentWindow ...

最新文章

  1. qt能使用logback_Spring boot使用logback实现日志配置
  2. 利用“栈”解决“出轨”问题
  3. 某网友发表如此言论:程序员基本都是diao丝,是农村进城务工人员!有资源有关系的都不干程序员!...
  4. 数据流图和数据字典 (笔记 )
  5. “巨杉数据库”获1000万美元B轮融资,DCM领投
  6. [bzoj3143] [HNOI2013]游走
  7. 类与接口(三)java中的接口与嵌套接口
  8. 手机java程序_郑州北大青鸟:用手机也能编写Java程序代码?
  9. java编写单词数_JAVA flink小试——单词计数
  10. c语言错误指导,c语言编程指导.pdf
  11. POJ 2385 Apple Catching
  12. mysql connect返回值_mysql_connect
  13. 银行离开IBM必死?国货10年内无法接盘
  14. 商业智能改变汽车行业
  15. 小车故障灯亮显示大全_原创案例丨17款迈锐宝XL缺缸故障
  16. netty实现mtqq_Netty实现高性能IOT服务器(Groza)之手撕MQTT协议篇上
  17. 对话惠普亚太区高管:绿色智慧的中国战略
  18. hashcat详细使用教程
  19. VLC保存网络流到本地和fiddler下载视频
  20. Olny Flashlight

热门文章

  1. HDMI接口和TMDS传输标准详解
  2. javaweb JAVA JSP营养健康管理系统(膳食的合理搭配)健康管理系统-
  3. 【windows编程之对话框】对话框原理,对话框的创建
  4. 辉太郎看前端(继承)
  5. 迅为iTOP-3399开发板快速上手
  6. 计算机网络实验搭建小型局域网,小型局域网组建实验报告..doc
  7. WEB应用中的SESSION详解
  8. 宽网mp3录音混音器 绿色
  9. 大神之路-起始篇 | 第14章.计算机科学导论之【数据库】学习笔记
  10. 计算机物理地址win8,Win8系统怎么查看电脑物理地址(两种方法)