window.parent与window.openner用法与区别

frame框架里的页面要改其他同框架下的页面或父框架的页面就用parent
window.opener引用的是window.open打开的页面的父页面。

window.frames对象可以引用iframe里的页面,也可以引用frameset里的页面.

可以这样

 代码如下 复制代码
window.frames[0].document.getElementById('xx');

可以这样

 代码如下 复制代码

window.frames[0].document.body.innerHTML;

frm = window.parent.window.frames['uploadFrame'];
frmDocument = frm.document;
frm.sb(3); //sb 是uploadFrame页面里的一个函数

对于firefox
如果你遇到报错:parent.document.frames has no properties
换为如下代码就可以了,这个代码IE,ff兼容. frm = window.parent.window.frames['uploadFrame'];其实 frames 集合并不是挂在 document 而是挂在 window 对象下.

注意这样修改frame里的页面有限制,就是必须是同域下的,否则无法访问
如果是同一域下,但是子域名不同,那么涉及到的js,html文件都加上一句。
document.domain = xxx.com [这里填写你的域名]

 代码如下 复制代码
document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');

parent.window例子如下:
举例:

a.html

 代码如下 复制代码

<html>
<head><title>父页面</title></head>
<body>
<form name="form1" id="form1">

<input type="text" name="username" id="username"/>

</form>
<iframe src="b.html" width=100%></iframe>
</body>
</html>

如果我们需要在b.htm中要对a.htm中的username文本框赋值,就如很多上传功能,上传功能页在Ifrmae中,上传成功后把上传后的路径放入父页面的文本框中

我们应该在b.html中写

 代码如下 复制代码
<script type="text/javascript">
var _parentWin = window.parent ;
_parentWin.form1.username.value = "xxxx" ;
</script>

window.opener 是window.open或超链接<a> 打开的子页面调用父页面对象
例子如下
a.html

 代码如下 复制代码
<html>
<head>
<title>父页面</title>
<script type="text/javascript">
function openB()
{
window.open('b.html','b','width=400,height=200,status=no,toolbar=no,menubar=no,location=no,resizable=yes,left=200,top=100');
}
</script>
</head>
<body>
<form id="form1" action="">
<div>

输入值:

 代码如下 复制代码
<input type="text" name="username" id="username" /><br />
<input type="button" value="打开窗口B" onclick="openB();" /><br />
<a href="b.html" target="_blank">超链接打开B页面</a>
</div>
</form>
</body>
</html>

b.html

 代码如下 复制代码

<html>
<head>
<script type="text/javascript">
function getpValue()
{
document.getElementByIdx_x_x_x("span1").innerText=window.opener.document.getElementByIdx_x_x_x("username").value;
}
</script>
</head>
<body>
<span>文本框值为:</span><span id="span1"></span><br />
<input type="button" value="获取父窗口内的文本框值" onclick="getpValue();">
</body>
</html>

window.parent 国外的简单用法
 
 
Syntax
 
window.parent.frames[num]
    window.parent.frameName
 
The parent property contains a reference to the parent window.
 
The referencing of these sibling frames can either be done using the frames array, or the name that is assigned by the NAME attribute of the tag.
 
var myFrameReference = myWin.parent.frames[2];
 

简单总结一下

子页面:

/AAA/AAA.html

父页面:

/BBB/BBB.html

子页面中代码如下

parent.window.location="CCC.html"

结果:

父页面跳转到:

/AAA/CCC.html

opener:对打开当前窗口的window对象的引用,如果当前窗口被用户打开,则它的值为null.

self:自引用属性,是对当前window对象的应用,与window属性同义.

self代表自身窗口,opener代表打开自身的那个窗口,比如窗口A打开窗口B.如果靠window.open方法,则对于窗口B,self代表B自己,而opener代表窗口A.

时间: 2024-09-17 03:54:41

window.parent与window.openner用法与区别的相关文章

window.parent与window.openner区别介绍_基础知识

今天总结一下js中几个对象的区别和用法: 首先来说说 parent.window与top.window的用法 "window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一层页面跳转 "top.location.href"是最外层的页面跳转 举例说明: 如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如

window.parent和window.opener区别是什么

下面一段代码是关于window.parent和window.opener区别来讲的,我们如果要用到iframe的值传到另一框架就要用到window.opener.document.getElementById(name).value = uvalue;这种形式哦. window.parent能获取一个框架的父窗口或父框架.顶层窗口的parent引用的是它本身. 可以用这一点特性来判断这个窗口是否是顶层窗口.如: Code function IsTopWindow( win ) { if( win

window.parent.location = window.parent.location.href;

问题描述 Response.Write("<script>window.parent.location=window.parent.location.href;</script>");使用另一种格式,不用JS来重新书写此代码.保存后返回父页面. 解决方案 解决方案二: 解决方案三:不用JS,因为在FF会出现把CSS样式表卡没有的状况.解决方案四:考试?问你的培训班里的小组长.

window.parent和window.opener区别

window.parent能获取一个框架的父窗口或父框架.顶层窗口的parent引用的是它本身. 可以用这一点特性来判断这个窗口是否是顶层窗口.如: Code function IsTopWindow( win ) {     if( win.parent == win ) return true;     else return false; } window.opener引用的是window.open打开的页面的父页面. opener即谁打开我的,比如A页面利用window.open弹出了B

window.parent与window.opener的区别

今天看了公司的开发库,发觉里面的人有时候滥用这两个东东,觉得有必要整理一下   window.parent: iframe页面调用父页面对象 a.html <html><head><title>父页面</title></head><body><form name="form1" id="form1"> <input type="text" name=&quo

iframe中的window.parent和window.top都是undefined怎么回事

问题描述 我的页面是采用父框架里使用iframe来实现tab页的.当iframe打开某个页面发现没有登录时后台会重定向到登录页.但是我希望前台整个页面都重定向走,而不是iframe里面的那个页面重定向.我使用了window.top.document.location = ''的方式.这招在IE下面可行,但是在firefox和chrome下是不可以的.会报window.top undefined.window.parent也是undefined.不知道是什么原因.难道跟我重定向后子页面找不到父页面

js的window.showModalDialog及window.open用法实例分析_javascript技巧

本文实例讲述了js的window.showModalDialog及window.open用法.分享给大家供大家参考.具体分析如下: 一.window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二.基本语法: window.open(pageURL,name,parameters) 其中: pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数(各参数用逗号分隔) 三.示例: <SCRIPT>

window.navigate 与 window.location.href 的使用区别介绍_基础知识

首先说明的是 window.navigate 与 window.location.href 都是实现页面链接跳转的,下面将介绍它们的区别. window.navigate("http://jb51.net/") 这个方法是只针对IE的,不适用于火狐等其他浏览器,在HTML DOM Window Object中,根本没有列出window.navigate这个方法,所以这个方法尽量少用,遗忘最好. location 属性是兼容所有浏览器的.因此在实现页面跳转的时候还是使用这个比较靠谱,比如

window.parent调用父框架时 ie跟火狐不兼容问题_javascript技巧

原始代码:(在ie中正常,火狐中根本不运行window.parent这一步) 复制代码 代码如下: <script> function oa_tool1(){ window.parent.mm.rows="20,200,10,*"; } </script> 修改代码:(在ie和火狐当中均正常) 复制代码 代码如下: <script> function oa_tool1(){ window.parent.document.getElementById(