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 存在 ...
随机推荐
- 从 github 上 fork repositories 后,如何和原仓库同步?
1. 首先要先确定一下是否建立了主repo的远程源: git remote -v 2. 如果里面只能看到你自己的两个源(fetch 和 push),那就需要添加主repo的源: git remote ...
- css常用的特效代码
一.网页变灰的代码:a) 网页变灰色<head>加到这里</head><style type="text/css">html {FILTER: ...
- mysql数据库去重复
参考:http://www.cnblogs.com/duanjie/archive/2011/08/13/2136862.html 说到去重复,感觉逻辑很简单.但动手写起来却并不是那么容易.面试的时候 ...
- Game中的状态机
我相信大多数博友都会玩游戏. 玩游戏,牵涉到状态包含 登陆,正常,死亡,复活,下线, 在上面状态的基础上.同时包含 站立,走动,跑动,不可移动施法状态, 战斗状态, 通常这是三个不同的分组.也就说可以 ...
- 为.NET搭建Linux的开发环境,鄙视那些将简单事情复杂化的人
写在前面的吐槽 原本跨平台开发很容易的事情, 很多人把它弄得很麻烦,给外人的感觉:你们.NET跨平台开发好不成熟,好麻烦哦. ..................................... ...
- Xamarin.Android之Spinner的简单探讨
一.前言 今天用了一下Spinner这个控件,主要是结合官网的例子来用的,不过官网的是把数据写在Strings.xml中的, 某种程度上,不是很符合我们需要的,比较多的应该都是从数据库读出来,绑定上去 ...
- Unity3D 5.x 简单实例 - 发射炮弹
1,下载.安装: http://unity3d.com/cn/get-unity/download/archive 建议直接借助 UnityDownloadAssistant 进行安装,根据需要勾选需 ...
- Data type confusion: what is an int(11)?
http://everythingmysql.ning.com/profiles/blogs/data-type-confusion-what-is-an Over and over I see cu ...
- android.view.InflateException: Binary XML file line #34: Error inflating class
问题一般出在xml的第三方View的全类名,你可能是直接粘贴过来的,没有改成自己项目的全类名.
- 基于 Eclipse 的 MapReduce 开发环境搭建
文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6055850.html 上周末本来要写这篇的,结果没想到上周末自己环境都没有搭起来,运行起 ...