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 相关文章推荐
Div自动滚动到末尾的代码
Oct 26 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
May 13 Javascript
详解Javascript模板引擎mustache.js
Jan 20 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
JavaScript表单验证开发
Nov 23 Javascript
微信小程序-小说阅读小程序实例(demo)
Jan 12 Javascript
vue2.0全局组件之pdf详解
Jun 26 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
Oct 13 jQuery
浅谈Node模块系统及其模式
Nov 17 Javascript
微信小程序实现传参数的几种方法示例
Jan 10 Javascript
浅谈vue首屏加载优化
Jun 28 Javascript
浅谈TypeScript 索引签名的理解
Oct 16 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
Jquery 设置标题的自动翻转
2009/10/03 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
JavaScript中string对象
2015/06/12 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
tensorflow 模型权重导出实例
2020/01/24 Python
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
如何理解委托
2012/01/06 面试题
档案接收函
2014/01/13 职场文书
小露珠教学反思
2014/04/30 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
个人工作表现自我评价
2015/03/06 职场文书
降价通知函
2015/04/23 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
Mysql Show Profile
2021/04/05 MySQL
python代码实现扫码关注公众号登录的实战
2021/11/01 Python