JS获取并操作iframe中元素的方法


Posted in Javascript onMarch 21, 2013

JS获取/设置iframe内对象元素、文档的几种方法

1、IE专用(通过frames索引形象定位):

document.frames[i].document.getElementById('元素的ID');

2、IE专用(通过iframe名称形象定位):

document.frames['iframe的name'].document.getElementById('元素的ID');

以上方法,不仅对iframe适用,对frameset里的frame也同样适用。IE虽然擅于自定标准,但不得不说它很多的设计还是比较体现人性化的。比如这个,它在同样支持下面的标准路径之外,提供了一个简洁且形象化的写法。

3、通用方法:

document.getElementById('iframe的ID').contentWindow.document.getElementById('元素的ID')

注意要加上contentWindow,往往出现问题都是因为这个容易被忽略,它代表frame和iframe内部的窗口对象。

JS获取iframe文档内容

<script type="text/javascript"> 

function getIframeContent(){  //获取iframe中文档内容

 var doc;

 if (document.all){ // IE 

  doc = document.frames["MyIFrame"].document; 

 }else{ // 标准

  doc = document.getElementById("MyIFrame").contentDocument; 

 }
 return doc.body.innerHTML;

} 

</script>

注意:上面的 .contentDocument 相当于 .contentWindow.document !

一、需求与遇到的问题

在网站的后台管理中使用了iframe框架布局,包括顶部菜单、左侧导航和主页面。需求是:点击主页面上的一个按钮,在顶部菜单栏的右侧显示“退出”链接,点击可退出系统。

我的思路是:在顶部的菜单页面放一个不可见的“退出”链接,当用户点击位于iframe中的主页面(mainPage.htm)中的按钮时,在顶部菜单页面的右侧显示“退出”。

我现在遇到的问题是:如何在页面的一个iframe子页面(mainPage.htm)中获取并且操作其它iframe子页面(比如topPage.htm)中的HTML元素?

二、通过JS获取并操作iframe中的元素来解决问题

这里主要就是通过JS来操作Window对象。Window 对象表示浏览器中打开的窗口,如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。

经过我在网上查资料,找到了JS操作iframe中HTML元素的方法。示例如下。

         function ShowExit() {

             //获取iframe的window对象

             var topWin = window.top.document.getElementById("topNav").contentWindow;

             //通过获取到的window对象操作HTML元素,这和普通页面一样

             topWin.document.getElementById("exit").style.visibility = "visible";

         } 

说明:第一步,通过window.top.document.getElementById("topNav")方法获取了顶部菜单页面(topPage.htm)所在的iframe对象;第二步,通过上一步获取到的iframe对象的contentWindow属性得到了iframe中元素所在的window对象;第三步,通过上一步获取到的window对象来操作iframe框架中的元素,这和操作不在iframe框架中的普通HTML元素是一样的。

Javascript 相关文章推荐
JavaScript 对Cookie 操作的封装小结
Dec 31 Javascript
IE event.srcElement和FF event.target 功能比较
Mar 01 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
Apr 02 Javascript
通过一段代码简单说js中的this的使用
Jul 23 Javascript
js实现的牛顿摆效果
Mar 31 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
Nov 18 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
Jun 13 Javascript
jQuery实现产品对比功能附源码下载
Aug 09 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
Dec 25 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
Jan 10 Javascript
关于iframe跨域POST提交的方法示例
Jan 15 Javascript
JQuery实现定时刷新功能代码
May 09 jQuery
jQuery页面图片伴随滚动条逐渐显示的小例子
Mar 21 #Javascript
js 验证密码强弱的小例子
Mar 21 #Javascript
javascript中日期转换成时间戳的小例子
Mar 21 #Javascript
Javascript算符的优先级介绍
Mar 20 #Javascript
jQuery.validate 常用方法及需要注意的问题
Mar 20 #Javascript
如何用js控制frame的隐藏或显示的解决办法
Mar 20 #Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
Mar 20 #Javascript
You might like
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
Vue中控制v-for循环次数的实现方法
2018/09/26 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
python switch 实现多分支选择功能
2020/12/21 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
描述RIP和OSPF区别以及特点
2015/01/17 面试题
新闻记者个人求职的自我评价
2013/11/28 职场文书
高中毕业的自我鉴定
2013/12/09 职场文书
销售找工作求职信
2013/12/20 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
《赶海》教学反思
2014/04/20 职场文书
交通事故调解协议书
2015/05/20 职场文书