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图片的展开和收缩实现代码
Apr 16 Javascript
JavaScript 事件入门知识
Apr 13 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
May 04 Javascript
javascript精确统计网站访问量实例代码
Dec 19 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
vue中路由验证和相应拦截的使用详解
Dec 13 Javascript
还不懂递归?读完这篇文章保证你会懂
Jul 29 Javascript
vue实现div单选多选功能
Jul 16 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
Sep 14 Javascript
vue实现前端列表多条件筛选
Oct 26 Javascript
vue递归实现树形组件
Jul 15 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
php中文字符截取防乱码
2008/03/28 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
PHP数据库链接类(PDO+Access)实例分享
2013/12/05 PHP
CentOS安装php v8js教程
2015/02/26 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
JS delegate与live浅析
2013/12/21 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
js中日期的加减法
2015/05/06 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
js删除数组中的元素delete和splice的区别详解
2018/02/03 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
vue 的 solt 子组件过滤过程解析
2019/09/07 Javascript
python生成器的使用方法
2013/11/21 Python
Python2.x与Python3.x的区别
2016/01/14 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
详解Python if-elif-else知识点
2018/06/11 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
WWE美国职业摔角官方商店:WWE Shop
2018/11/15 全球购物
《彼得与狼》教学反思
2016/02/20 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript