html iframe 元素之间的调用

简介: html iframe 元素之间的调用一、简介   一般需要引入一个独立页面的时候,我们会使用iframe。在业务需要的时候,我们需要在父页面与iframe页面之间进行交互。交互的时候,我们就需要使 用到js或jquery对父页面或子页面中的相关元素进操作。

html iframe 元素之间的调用
一、简介
  一般需要引入一个独立页面的时候,我们会使用iframe。在业务需要的时候,我们需要在父页面与iframe页面之间进行交互。交互的时候,我们就需要使
用到js或jquery对父页面或子页面中的相关元素进操作。
二、示例
  1、页面结构如下:

  父页面:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5         <title>父页面</title>
 6     <script  type="text/javascript"   src="jquery-1.8.3.min.js"></script>
 7     </head> 
 8     <body> 
 9         <input id="username" name="username" value="zhangsan" />
10         <button onclick="getIframeEle();">change iframe1 from js</button>
11         <button onclick="getIframeEle2();">change iframe1 from jquery</button>
12         </br>
13         <iframe id="t_sub" name="myFrame"  src="./sub.html"> </iframe> 
14         <iframe id="t_sub2" name="myFrame2"  src="./sub2.html"> </iframe> 
15     <script type="text/javascript">
16     function getIframeEle(){ //通过js父页面操作子页面中的元素
17         var childdoc = document.getElementById("t_sub").contentWindow.document;
18         var childele = childdoc.getElementById("tname");
19         childele.value = "chang from parent" + new Date();
20         console.log(childele.value);  
21     }
22     function getIframeEle2(){//通过jquery父页面操作子页面中的元素
23         //console.log($(document.frames("t_sub").document)); 
24         var childele = $(document.getElementById('t_sub').contentWindow.document).find("#tname");
25         childele.val("jquery iframe");
26         console.log(childele.val());
27     }
28 
29 
30     // 计算页面的实际高度,iframe自适应会用到
31   function calcPageHeight(doc) {
32       var cHeight = Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
33       var sHeight = Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight)
34       var height  = Math.max(cHeight, sHeight)
35       return height
36   }
37   var ifr = document.getElementById('t_sub2')
38   ifr.onload = function() {
39       var iDoc = ifr.contentDocument || ifr.document
40       var height = calcPageHeight(iDoc)
41       ifr.style.height = height + 'px'
42   }
43     </script>
44     </body>
45 </html>

  子页面一

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5         <title>子页面一</title> 
 6     <script  type="text/javascript"   src="jquery-1.8.3.min.js"></script>
 7     </head> 
 8     <body> 
 9         <input id="tname" value="test" />
10         <button onclick="getParentEle();">change parent from js</button>
11         <button onclick="getBrothertEle2();">change brother iframe from js</button>
12         <button onclick="getParentEle2();">change parent iframe from jquery</button>
13 <script type="text/javascript">
14 <!--
15 function getParentEle(){//通过js获取并操作父页面的元素
16     var par_input =    parent.document.getElementById("username");
17     par_input.value = "change from iframe" + new Date();
18     console.log(par_input.value)
19 }    
20 function getParentEle2(){//通过jquery获取并操作父页面中的元素
21     var usernameELe = $('#username', parent.document);
22     usernameELe.val("change from child iframe ");
23     console.log(usernameELe.val());
24 }
25 function getBrothertEle2(){//通过js获取并操作兄弟iframe中的元素
26     var parentDOM = parent.document.getElementById("t_sub2").contentWindow.document;;
27     var borele = parentDOM.getElementById('tname2');
28     borele.value = "change from brother iframe" + new Date();
29     console.log(borele.value)
30 }
31 //-->
32 </script>
33     </body>
34 </html>

  子页面二

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5         <title>子页面二</title> 
 6     </head> 
 7     <body> 
 8         <input id="tname2" value="test22" /> 
 9         <a href="javascript:void(0);" onclick="test(this);" >test</a>
10         <br/><br/><br/><br/><br/><br/><br/> 
11     <script type="text/javascript">
12     function test(this_){
13         window.parent.location.href="http://www.baidu.com";
14     }
15     </script>        
16     </body>
17 </html>

  页面效果如下图所示:

  

目录
相关文章
|
2月前
|
移动开发 开发者 UED
HTML5 语义元素详解
HTML5引入了诸多语义元素
WK
|
2月前
|
存储 移动开发 前端开发
HTML5新增了哪些其他元素和属性
这段文字介绍了HTML5中新增的多种元素和属性,包括页面布局元素如header、nav等,表单元素如email、tel输入框等,以及其他元素如canvas、svg等。此外,还介绍了全局及表单属性,例如contenteditable、placeholder等,这些新功能显著增强了HTML5在现代网页设计与开发中的实用性与灵活性。
WK
69 1
|
23天前
|
存储 移动开发 数据处理
HTML5 元素2
HTML5引入了多个新元素以增强表单功能和用户体验。`&lt;keygen&gt;`元素用于生成密钥对,提交表单时生成私钥和公钥,私钥保存在客户端,公钥发送至服务器,用于后续的身份验证。`&lt;output&gt;`元素则用于展示计算结果或其他脚本输出,如表单数据处理的结果。此外,`&lt;datalist&gt;`元素可与`&lt;input&gt;`元素结合使用,提供预定义的选项列表,增强输入的便捷性和准确性。这些元素共同提升了网页的交互性和安全性。
|
20天前
|
移动开发 前端开发 JavaScript
HTML5 <nav> 元素2
HTML5中的`&lt;nav&gt;`标签用于定义页面的导航链接部分,但并非所有链接都需置于其中。`&lt;aside&gt;`标签定义页面主内容外的相关信息,如侧边栏。`&lt;header&gt;`标签描述文档或节的头部区域,可用于定义内容的介绍展示区。示例包括导航、家庭旅行记录和IE9发布信息等。
|
23天前
|
移动开发 UED HTML5
HTML5 表单元素1
HTML5引入了新的表单元素,如`&lt;datalist&gt;`、`&lt;keygen&gt;`和`&lt;output&gt;`,以增强表单的功能性和用户体验。
|
3月前
|
JavaScript 前端开发 容器
用HTML DOM实现有条件地渲染网页元素(上)
用HTML DOM实现有条件地渲染网页元素(上)
|
3月前
|
存储 JavaScript 前端开发
用HTML DOM实现有条件地渲染网页元素(下)
用HTML DOM实现有条件地渲染网页元素(下)
|
20天前
|
Web App开发 移动开发 iOS开发
HTML5 语义元素1
HTML5引入了语义元素,如`&lt;nav&gt;`、`&lt;header&gt;`、`&lt;footer&gt;`等,这些元素能清晰地向浏览器和开发者传达其内容的意义,如导航链接、头部和尾部。与非语义元素(如`&lt;div&gt;`)不同,语义元素使网页结构更加明确,有助于提升可读性和可访问性。例如,`&lt;section&gt;`标签用于定义文档中的节,而`&lt;article&gt;`标签则用于定义独立的内容,如论坛帖子、博客文章等。这些新元素在IE9及更高版本、Firefox、Chrome、Safari和Opera中得到支持。
HTML 元素
HTML文档由HTML元素定义,元素包括开始标签、内容和结束标签。某些元素内容为空,可在开始标签中关闭。大多数元素可拥有属性,且元素间可相互嵌套,形成复杂结构。
|
3月前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
本文介绍了Twaver HTML5中的拓扑元素(Element),包括网元(Element)、节点(Node)和连线(Link)的基本概念和使用方法。文章详细解释了Element的属性和方法,并通过示例代码展示了如何在React组件中创建节点、设置节点属性和样式。
57 1
Twaver-HTML5基础学习(8)拓扑元素(Element)_网元(Element)、节点(Node)
下一篇
DataWorks