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扩展插件Validate—4设置错误提示的样式
Sep 05 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
Nov 26 Javascript
javascript二维数组转置实例
Jan 22 Javascript
jQuery实现平滑滚动的标签分栏切换效果
Aug 28 Javascript
解析微信JS-SDK配置授权,实现分享接口
Dec 09 Javascript
15个非常实用的JavaScript代码片段
Dec 18 Javascript
详解JavaScript中this的指向问题
Jan 20 Javascript
vue调用高德地图实例代码
Apr 28 Javascript
JavaScript你不知道的一些数组方法
Aug 18 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
Dec 28 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
Vue监听滚动实现锚点定位(双向)示例
Nov 13 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
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
vue 实现数字滚动增加效果的实例代码
2018/07/06 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
微信小程序页面上下滚动效果
2020/11/18 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
Python复数属性和方法运算操作示例
2017/07/21 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
python数据库编程 ODBC方式实现通讯录
2020/03/27 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
利用指针变量实现队列的入队操作
2012/04/07 面试题
如何利用cmp命令比较文件
2016/04/11 面试题
学生打架检讨书
2014/02/14 职场文书
安全保证书范文
2014/04/29 职场文书
应届毕业生求职信
2014/05/26 职场文书
公司领导班子对照材料
2014/08/18 职场文书
2014年国庆晚会主持词
2014/09/19 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
A22国内电台短波广播频率表
2022/05/10 无线电