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 相关文章推荐
jQuery 数据缓存data(name, value)详解及实现
Jan 04 Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
jQuery关于导航条背景切换效果实现示例
Sep 04 Javascript
jQuery功能函数详解
Feb 01 Javascript
JavaScript简单下拉菜单实例代码
Sep 07 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
基于jQuery实现的查看全文功能【实用】
Dec 11 Javascript
node.js入门教程之querystring模块的使用方法
Feb 27 Javascript
深入理解Vuex 模块化(module)
Sep 26 Javascript
使用Angular-CLI构建NPM包的方法
Sep 07 Javascript
微信小程序使用wxParse解析html的方法示例
Jan 17 Javascript
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
利用PHP动态生成VRML网页
2006/10/09 PHP
第十四节--命名空间
2006/11/16 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
微信小程序 消息推送php服务器验证实例详解
2017/03/30 PHP
php的扩展写法总结
2019/05/14 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
jquery select下拉框操作的一些说明
2010/04/02 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
Express.JS使用详解
2014/07/17 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
详解Python3.1版本带来的核心变化
2015/04/07 Python
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
Python实现自动为照片添加日期并分类的方法
2017/09/30 Python
简单了解python变量的作用域
2019/07/30 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
毕业生怎样写好自荐信
2013/11/11 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
社会公德演讲稿
2014/05/20 职场文书
考察邀请函范文
2015/01/31 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
社区干部培训心得体会
2016/01/06 职场文书
《将心比心》教学反思
2016/02/23 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
Vue3中的Refs和Ref详情
2021/11/11 Vue.js