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 源码分析笔记(6) jQuery.data
Jun 08 Javascript
jQuery窗口、文档、网页各种高度的精确理解
Jul 02 Javascript
javascript中的altKey 和 Event属性大全
Nov 06 Javascript
javascript中checkbox使用方法实例演示
Nov 19 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
Jan 19 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
Jul 12 Javascript
Node.js批量给图片加水印的方法
Nov 15 Javascript
实现隔行换色效果的两种方式【实用】
Nov 27 Javascript
vue--点击当前增加class,其他删除class的方法
Sep 15 Javascript
小程序实现自定义导航栏适配完美版
Apr 02 Javascript
js前端对于大量数据的展示方式及处理方法
Dec 02 Javascript
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
PHP 常见郁闷问题答解
2006/11/25 PHP
php模板函数 正则实现代码
2012/10/15 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
javascript自启动函数的问题探讨
2013/10/05 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Flask配置Cors跨域的实现
2019/07/12 Python
详解python中groupby函数通俗易懂
2020/05/14 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
一套Delphi的笔试题二
2013/05/11 面试题
学校施工安全责任书
2015/01/29 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书