JS操作iframe里的dom(实例讲解)


Posted in Javascript onJanuary 29, 2014

直接赋值如下代码测试即可明白:

1.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<div class="line">====================注意:测试从这里开始=========================</div>
<p id="pox">用来测试子窗体iframeA访问父窗体的某元素</p>
<div class="line">====================iframe分割线=========================</div>
<iframe src="a.html" width="100%" frameborder="0" id="frameA" name="frameA"></iframe>
<iframe src="b.html" name="iframeB" width="100%" frameborder="0" id="frameB"></iframe>
<div class="line">====================iframe分割线=========================</div>
<p>先来演示:父窗体访问子窗体中的某方法或元素</p>
<p>总结:父窗体访问子窗体的方法跟元素采用不同的方式</p>
<input type="button" onclick="frameDiv()" value="父窗体访问子窗体中的某元素" />
<input type="button" onclick="frameFun()" value="父窗体访问子窗体中的某方法" />
<script type="text/javascript">
    //子窗口访问父窗口方法
    function testP(ss){
        alert(ss)
    }
    //取得iframe的元素
    function getIframe(id){
        return document.getElementById(id).contentWindow.document;
    }
    //父窗口访问子窗口元素
    function frameDiv(){
        getIframe("frameA").getElementById("ooxx").style.backgroundColor="#f00"
        //window.frames["iframeA"].getElementById("ooxx").style.backgroundColor="#f00"  //不能通过这种形式访问某元素
    }
    //父窗口访问子窗口方法
    function frameFun(){
        //getIframe("frameB").getsFun();//不能通过这种形式访问子窗体某方法
       // window.frames["iframeB"].getsFun();
  alert(window.frames["iframeB"].getsFun());
    }
</script> 
</body>
</html>

a.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<div id="ooxx">用来测试父窗体访问子窗体中的某元素</div>
<p id="divooxx">用来测试子窗口B访问窗体A的某元素</p>
<p>1.子窗口iframeA访问父窗口的某元素</p>
<input type="button" onclick="frameToPdiv()" value="子窗口访问父窗口的某元素" />
<input type="button" onclick="frameToPfun()" value="子窗口访问父窗口的某方法" />
<script type="text/javascript">
    //子窗口访问父窗口的某元素
    function frameToPdiv(){
        parent.document.getElementById("pox").style.color="#fff";
        parent.document.getElementById("pox").style.backgroundColor="#f0a0f0"
    }
    //子窗口访问父窗口方法
    function frameToPfun(ss){
        parent.testP("ssss");
    }
    //用于测试iframeB访问的方法
    function testBA(){
        alert("用于测试iframeB访问的方法")
    }
</script>
</body>
</html>

b.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<p>二:测试子窗体间相互访问某方法或元素</p>
<input type="button" value="子窗体B访问子窗体A的某元素" onclick="frameTframeDiv()" />
<input type="button" value="子窗体B访问子窗体A的某方法" onclick="frameTframeFun()" />
<script type="text/javascript">
    //子窗体B访问子窗体A的某元素
    function frameTframeDiv(){
        //parent.document.getElementById("frameA").contentWindow.document.getElementById("divooxx").style.color="#a0c0f0";
        //parent.document.getElementById("frameA").contentWindow.document.getElementById("divooxx").style.backgroundColor="#000"
        var _bframe=parent.getIframe("frameA");//子窗体访问父窗体方法
        _bframe.getElementById("divooxx").style.color="#a0c0f0";
        _bframe.getElementById("divooxx").style.backgroundColor="#000";
    }
    //子窗体B访问子窗体A的某方法
    function frameTframeFun(){
            window.parent.frames["frameA"].testBA();
    }
</script>
<script type="text/javascript">
    function getsFun(){
        return "sssssss";
    }
    //getFun()
</script>
</body>
</html>
Javascript 相关文章推荐
jQuery 源码分析笔记(2) 变量列表
May 28 Javascript
javascript 快速排序函数代码
May 30 Javascript
正则表达式搭配js轻松处理json文本方便而老古
Feb 17 Javascript
深入理解React中es6创建组件this的方法
Aug 29 Javascript
jquery 手势密码插件
Mar 17 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
Jun 02 Javascript
AngularJS实现select的ng-options功能示例
Jul 12 Javascript
浅谈vue方法内的方法使用this的问题
Sep 15 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
May 07 Javascript
layui table 列宽百分比显示的实现方法
Sep 28 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
Nov 21 Javascript
vue中配置scss全局变量的步骤
Dec 28 Vue.js
js 数组操作之pop,push,unshift,splice,shift
Jan 29 #Javascript
js中的preventDefault与stopPropagation详解
Jan 29 #Javascript
js正则表达式中test,exec,match方法的区别说明
Jan 29 #Javascript
js的正则test,match,exec详细解析
Jan 29 #Javascript
js正则表达exec与match的区别说明
Jan 29 #Javascript
jquery实现input输入框实时输入触发事件代码
Jan 28 #Javascript
用jquery等比例控制图片宽高的具体实现
Jan 28 #Javascript
You might like
缅甸的咖啡简史
2021/03/04 咖啡文化
我用php+mysql写的留言本
2006/10/09 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
php实现微信支付之现金红包
2018/05/30 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
javascript 带有滚动条的表格,标题固定,带排序功能.
2009/11/13 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
Python3基于sax解析xml操作示例
2018/05/22 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
应届生程序员求职信
2013/11/05 职场文书
会计系中文个人求职信
2013/12/24 职场文书
师范生自我鉴定
2014/03/20 职场文书
毕业自我鉴定怎么写
2014/03/25 职场文书
体育运动口号
2014/06/09 职场文书
组织委员竞选稿
2015/11/21 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
详解Python requests模块
2021/06/21 Python