html iframe 元素之间的调用
html iframe 元素之间的调用
一、简介
一般需要引入一个独立页面的时候,我们会使用iframe。在业务需要的时候,我们需要在父页面与iframe页面之间进行交互。交互的时候,我们就需要使
用到js或jquery对父页面或子页面中的相关元素进操作。
二、示例
1、页面结构如下:
父页面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>父页面</title>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
</head>
<body>
<input id="username" name="username" value="zhangsan" />
<button onclick="getIframeEle();">change iframe1 from js</button>
<button onclick="getIframeEle2();">change iframe1 from jquery</button>
</br>
<iframe id="t_sub" name="myFrame" src="./sub.html"> </iframe>
<iframe id="t_sub2" name="myFrame2" src="./sub2.html"> </iframe>
<script type="text/javascript">
function getIframeEle(){ //通过js父页面操作子页面中的元素
var childdoc = document.getElementById("t_sub").contentWindow.document;
var childele = childdoc.getElementById("tname");
childele.value = "chang from parent" + new Date();
console.log(childele.value);
}
function getIframeEle2(){//通过jquery父页面操作子页面中的元素
//console.log($(document.frames("t_sub").document));
var childele = $(document.getElementById('t_sub').contentWindow.document).find("#tname");
childele.val("jquery iframe");
console.log(childele.val());
} // 计算页面的实际高度,iframe自适应会用到
function calcPageHeight(doc) {
var cHeight = Math.max(doc.body.clientHeight, doc.documentElement.clientHeight)
var sHeight = Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight)
var height = Math.max(cHeight, sHeight)
return height
}
var ifr = document.getElementById('t_sub2')
ifr.onload = function() {
var iDoc = ifr.contentDocument || ifr.document
var height = calcPageHeight(iDoc)
ifr.style.height = height + 'px'
}
</script>
</body>
</html>
子页面一
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>子页面一</title>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
</head>
<body>
<input id="tname" value="test" />
<button onclick="getParentEle();">change parent from js</button>
<button onclick="getBrothertEle2();">change brother iframe from js</button>
<button onclick="getParentEle2();">change parent iframe from jquery</button>
<script type="text/javascript">
<!--
function getParentEle(){//通过js获取并操作父页面的元素
var par_input = parent.document.getElementById("username");
par_input.value = "change from iframe" + new Date();
console.log(par_input.value)
}
function getParentEle2(){//通过jquery获取并操作父页面中的元素
var usernameELe = $('#username', parent.document);
usernameELe.val("change from child iframe ");
console.log(usernameELe.val());
}
function getBrothertEle2(){//通过js获取并操作兄弟iframe中的元素
var parentDOM = parent.document.getElementById("t_sub2").contentWindow.document;;
var borele = parentDOM.getElementById('tname2');
borele.value = "change from brother iframe" + new Date();
console.log(borele.value)
}
//-->
</script>
</body>
</html>
子页面二
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>子页面二</title>
</head>
<body>
<input id="tname2" value="test22" />
<a href="javascript:void(0);" onclick="test(this);" >test</a>
<br/><br/><br/><br/><br/><br/><br/>
<script type="text/javascript">
function test(this_){
window.parent.location.href="http://www.baidu.com";
}
</script>
</body>
</html>
页面效果如下图所示:

html iframe 元素之间的调用的更多相关文章
- JS备忘--子父页面获取元素属性、显示时间,iframe之间互相调用函数
//页面加载完成后执行 $(function () { getHW();}); //当用户改变浏览器大小改变时触发 $(window).resize(function () { setHW(); }) ...
- Iframe父页面与子页面之间的调用
原文:Iframe父页面与子页面之间的调用 Iframe父页面与子页面之间的调用 专业词语解释如下: Iframe:iframe元素是文档中的文档. window对象: 浏览器会在其打 ...
- frameset,iframe框架之间如何互相调用变量、函数
以往一直在编写的都是前台的UI,很少使用到frameset.iframe,对其了解也是十分有限,只是知道其可以为其当前页面引入html文件成为当前页的一部分,但是这两天在做后台UI界面的时候,发现这样 ...
- 笔记:javascript操作iframe内的DOM元素,及调用iframe内的方法
iframe相当于一个嵌入在网页内的浏览器,它与当前网页是隔离的. 但有时我们也需要在当前网页操作iframe内的元素或操作iframe内的javascript方法. 在网页内操作DOM元素,是使用d ...
- iframe于iframe页面之间的函数相互调用
因为iframe页面于包括父页面在内的其他页面通讯有跨域问题,所以只有在服务器环境下或者火狐浏览器下才能测试. 在iframe页面调用父页面的函数采用parent,例子:在父页面有一个say()函数, ...
- React兄弟、父子元素之间的通信
React兄弟.父子元素之间的通信 React元素之间的通信主要由下面几种方式 1. Redux 2. EventEmitter 3. 通过props进行通信(需要有嵌套关系) 子元素到父元素 父子元 ...
- iframe元素的学习(笔记)
什么是iframe:iframe元素即内联框架,iframe是内联的并且承前启后,对于外围的页面,iframe是一个普通的元素,对于iframe里面的内容,又是一个五脏俱全的页面.重下面的写法可以看出 ...
- iframe 元素会创建包含另外一个文档的内联框架(即行内框架)
HTML 与 XHTML 之间的差异 在 HTML 4.1 Strict DTD 和 XHTML 1.0 Strict DTD 中,不支持 iframe 元素. 提示和注释: 提示:您可以把需要的文本 ...
- jquery/js iframe 元素操作
1.判断id/ class 是否存在? <script> $(function(){ if(("#id_name").length()>0){ //如果id 存在 ...
随机推荐
- GeoServer中利用SLD配图之矢量图层配图
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1 背景 我们在ArcMap中可以直接通过symbol功能对图层进行定 ...
- DocX在C#中的基本操作方法
用了一个星期把园子里2016年中有关.net的文章都看了,有些只是大致的看了一下,在看的同时也在记录一些通用的方法.发现有很多对NPOI的文档,主要是操作Excl的方法,却很少有关文档类型的方法. 在 ...
- 读谭浩强C语言数据结构有感(1)
1.什么是数据结构? 数据结构,就是我们计算机内部的运算,编程语言的基础工作模式吧,个人总结的 = = !! 数据:说简单一点,就是计算机二进制机器码,然后通过一些复杂的操作,变为复杂的语言. 数据元 ...
- Android 命名规范 (提高代码可以读性)
android文件众多,根据名称来辨别用途很重要,因此命名要规范 这篇文章可参考:Android 命名规范 (提高代码可以读性) 刚接触android的时候,命名都是按照拼音来,所以有的时候想看懂命名 ...
- HTML5+CSS3实现图片可倾斜摆放的动画相册效果
先看看效果:其中鼠标悬浮在图片上会有动态效果图 直接上代码: css文件 @CHARSET "UTF-8"; *{ padding:0px; margin:0px; } div{ ...
- Java进击C#——语法之知识点的改进
本章简言 上一章我们讲到关于面向对象思想上C#和JAVA之差别.笔者分别从面向对象的三大特性入手.而本章主要讲一些C#改进的知识点.在.NET Framework 2.0之后出现很多新的知识点.这些知 ...
- .NET Task揭秘(一)
Task为.NET提供了基于任务的异步模式,它不是线程,它运行在线程池的线程上.本着开源的精神, 本文以解读基于.NET4.5 Task源码的方式来揭秘Task的实现原理. Task的创建 Tas ...
- ORACLE存储过程调用Web Service
1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...
- C#的Socket实现UDP协议通信
今天稍花化了一点时间,利用C#的Socket验证了UDP的通信,为接下来特地利用UDP做个分布式的通信仿真系统打下基础.众所周知,UDP 就是用户数据报协议,在互联网参考模型的第四层——传输层.与TC ...
- UVALive 6911---Double Swords(贪心+树状数组(或集合))
题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...