javascript之iframe

news/2024/9/17 18:05:21

iframe可以做的事情:

  • 实现跨域

  • 解决IE6下select遮挡不住的问题

  • 解决ajax的前进后退问题

  • 实现异步上传

iframe基本知识

iframe元素会创建包含另外一个文档的内联框架

操作iframe

1)隐藏iframe表框
设置frameborder为0;

<iframe frameborder="0" width="400" height="400" src="#" scrolling="no">
</iframe>


<body><iframe frameborder="1" width="400" height="400" src="#" scrolling="no" id="myiframe"></iframe><script>var myiframe = document.getElementById("myiframe");myiframe.style.border = "none"; // FF下有效,IE下无效myiframe.setAttribute("frameborder",0);//FF下有效,IE下无效myiframe.frameBorder = 0;//FF下有效,IE下无效</script>
</body>

2)动态创建iframe

<script>var obj = document.createElement("iframe");obj.frameborder = 0;obj.src ="http://blog.csdn.net/cuew1987";  obj.frameBorder = 0;//FF、IE隐藏边框有效  obj.width = "400px";  obj.height = "400px";  obj.scrolling = "no";  document.body.appendChild(obj); 
</script>

3)获取iframe

<script>var obj = document.getElementById("myiframe");  //可操作iframe有关的属性,不能操作里面的文档var obj = frames["myiframe"];
</script>

获取iframe中的window对象

<script>function getIframeWindow(obj){return obj.contentWindow || obj.contentDocument.parentWindow;}
</script>

如果是获取document对象,则

return obj.contentWindow.document || obj.contentDocument;

a>contentWindow 兼容各个浏览器,可取得子窗口的 window 对象。
b>contentDocument Firefox 支持,> ie8 的ie支持。可取得子窗口的 document 对象。

4)获取iframe页面高度

function getIframeHeight(obj){  var idoc = getIframeWindow(obj).document;   if(idoc.body){  //W3Creturn Math.max(idoc.body.scrollHeight,idoc.body.offsetHeight);     }else if(idoc.documentElement){  //IEreturn Math.max(idoc.documentElement.scrollHeight,idoc.documentElement.offsetHeight);     }  
}  

5)父子页面互访

子访问父:  parent.html:  <body>  <div>等到的信息:<div id="msg"></div></div>  <iframe frameborder="1" width="400" height="400" src="son.html" scrolling="no" id="myiframe"></iframe>  </body>  son.html:  <body>  <input type="button" onClick="setMsg()" value="setMsg">  <script>  function setMsg(){  var msg = window.parent.document.getElementById("msg");  msg.innerHTML= "Hello world!!";  }  </script>  </body>


父访问子:
parent.html:
<body><div>等到的信息:<div id="setMsg"></div></div>  <input type="button" value="setMsg" onClick="setMsg()"><br>  <iframe frameborder="1" width="400" height="400" src="son.html" scrolling="no" id="myiframe"></iframe>  <script type="text/javascript">  function setMsg(){  var obj = document.getElementById("myiframe");  var msg = getIframeWindow(obj).document.getElementById("msg");  document.getElementById("setMsg").innerHTML = msg.innerHTML;  }  </script>  
</body>  son.html:  
<body>  <div id="msg">Hello world!!!</div>  
</body>  

http://lihuaxi.xjx100.cn/news/243667.html

相关文章

BZOJ1315 : Ural1557Network Attack

找到一棵dfs搜索树&#xff0c;给每条非树边一个随机非0权值&#xff0c;每条树边为所有经过它的树边的权值的异或。 那么有2种情况是合法的&#xff1a; 1.一条边权值为0&#xff0c;一条边权值非0。 2.两条边异或和为0。 排序后统计即可&#xff0c;时间复杂度$O(m\log m)$。…

【Python培训基础知识】单例模式

单例模式是保证一个类仅有一个实例的设计模式。Windows中的任务管理器就是一个典型的单例模式软件。Windows任务管理器如图所示。 Windows任务管理器只能打开一个&#xff0c;即使用户重复打开&#xff0c;也只能获得一个实例&#xff0c;这不同于Word等软件可以打开多个实例。…

BFC与自适应浅析

本文是从之前的csdn上的乱七八糟的笔记整理过来的 概念 Formatting context 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域&#xff0c;并且有一套渲染规则&#xff0c;它决定了其子元素将如何定位&#xff0c;以及和其他元素的关系和相互作用。最常见的 Formatti…

JavaScript文件中调用AngularJS内部方法或改变$scope变量

需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量&#xff0c;同时还要保持双向数据绑定&#xff1b; 首先获取AngularJS application&#xff1a; 方法一&#xff1a;通过controller来获取app var appElement document.querySelector([ng-controllermainCon…

零基础学python培训需要学习多久?

Python是一种入门比较简单的编程语言&#xff0c;但是如果是零基础学员&#xff0c;学习起来还是需要时间的&#xff0c;那么零基础学python培训需要学习多久呢?我们来看看小编的详细介绍吧。 零基础学python培训需要学习多久? 现在的培训机构&#xff0c;一般Python的培训时…

Windows7 自动更新时遇到故障

故障1&#xff1a;启动 Windows Update&#xff0c;但是始终显示“正在检查更新”。解决方案&#xff1a;KB3138612This article describes an update that contains some improvements to Windows Update Client in Windows 7 Service Pack 1 (SP1) and Windows Server 2008 R…

初学者学习Java编程的基础书籍推荐

学习java技术&#xff0c;除了通过面授班和视频教程的学习&#xff0c;看书也是非常重要的一步&#xff0c;对于大部分初学者来说&#xff0c;书籍是非常重要的&#xff0c;也可以同时做好笔记&#xff0c;下面小编就为大家基本适合初学者学习Java编程的基础书籍。 ​  初学者…

最好的品质

工作最好的品质是坚持&#xff01;在坚持的过程中虽然很辛苦 &#xff0c;但收获会远远大于付出……但无论走了多远&#xff0c;不要忘记为什么出发&#xff01;毕竟&#xff0c;在相对公平并且在不断进步的中国教育面前&#xff0c; 如果一个孩子想在与数千万人的竞争中脱颖而…