js操作frame详细解说,window.opener和window.parent的区别
Js中的Parent对象
Js中的Parent对象文章分类:Web前端该变更永远指分割窗口最高层次的浏览器窗口。
如果计划从分割窗口的最高层次开始执行命令,就可以用top变量。
parent:该变量指的是包含当前分割窗口的父窗口。
如果在一个窗口内有分割窗口,而在其中一个分割窗口中又包含着分割窗口,则第2层的分割窗口可以用parent变量引用包含它的父分割窗口。
opener:指用WINDOW.OPEN等方式创建的新窗口对应的原窗口。
附:Window对象、Parent对象、Frame对象、Document对象和Form对象的阶层关系:Windows对象→Parent对象→Frame对象→Document对象→Form对象,如下:parent.frame1.document.forms[0].elements[0].value;问题:在一个页面嵌入框架<iframe>,然后在框架中使用javascript脚本:parent.xx.value='xxxxx'; 在IE中可以正常看到赋值,但是在firefox中则不能完成赋值。
请问在firefox中调用父框架的对象应该是哪个,是否和IE兼容?解答:window.parent.document.form名.xx.value='xxxxx'; window可省略。
parent.document.form名.xx.value='xxxxx'; parent.document.getElementById("xx").value='xx xxx';window.parent与window.opener的区别 javascript调用主窗口方法1: window.parent 是iframe页面调用父页面对象举例: 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 ;_ername.value = "xxxx";</script>2: window.opener 是window.open 打开的子页面调用父页面对象opener:对打开当前窗口的window对象的引用,如果当前窗口被用户打开,则它的值为null。
子窗口调用父窗口js方法
子窗口调用父窗口js方法子窗口调用父窗口的JS方法可以通过以下几种方式实现:通过window对象、通过window.opener对象、通过postMessage方法。
1. 使用window对象:在子窗口中,可以通过window.parent来引用父窗口的window对象,从而调用其定义的JS方法。
例如,在父窗口中定义了一个名为testFunc的方法,可以在子窗口中通过以下方式调用:window.parent.testFunc();这样就可以在子窗口中调用父窗口的testFunc方法。
2. 使用window.opener对象:在子窗口中,可以通过window.opener来引用父窗口的window对象,从而调用其定义的JS方法。
例如,在父窗口中定义了一个名为testFunc的方法,可以在子窗口中通过以下方式调用:window.opener.testFunc();这样就可以在子窗口中调用父窗口的testFunc方法。
需要注意的是,使用window.opener对象的前提是,打开子窗口时是通过window.open方法或者target属性指定的,而不是通过a标签或者表单的target属性等其他方式打开的新窗口。
否则,会出现“无法获取opener”的错误。
3. 使用postMessage方法:postMessage方法是HTML5中新增的一个用于多窗口间通信的方法,通过它可以实现跨窗口的消息传递。
在父窗口中,需要定义一个消息事件的监听器,用于接收子窗口发来的消息:window.addEventListener('message', function(event) {if (event.origin !== '子窗口的origin') return; 过滤非法来源的消息处理子窗口发来的消息console.log('收到子窗口发来的消息:', event.data);}, false);在子窗口中,可以使用postMessage方法向父窗口发送消息:window.parent.postMessage('Hello, 父窗口!', '父窗口的origin');这样就可以在子窗口中向父窗口发送消息。
window.open返回的对象的方法
window.open返回的对象的方法`window.open()` 是一个JavaScript方法,用于打开新的浏览器窗口。
这个方法返回一个`Window` 对象,该对象具有多种方法和属性,可以用来控制新打开的窗口。
以下是一些常用的`Window` 对象的方法:1. `close()`: 关闭当前窗口。
注意,这个方法可能由于浏览器的安全策略被禁用,特别是对于非用户触发的事件。
2. `moveTo(x-coord, y-coord)`: 将窗口移动到指定的屏幕坐标。
3. `moveBy(x-offset, y-offset)`: 将窗口从当前位置移动指定的像素值。
4. `resizeTo(width, height)`: 改变窗口的大小。
5. `resizeBy(width-offset, height-offset)`: 相对于当前大小改变窗口的大小。
6. `scroll(x-coord, y-coord)`: 滚动窗口到指定的位置。
7. `scrollBy(x-offset, y-offset)`: 相对于当前位置滚动窗口。
8. `alert()`: 显示一个警告对话框,包含一个消息和确认按钮。
9. `confirm()`: 显示一个确认对话框,包含一个消息、确认和取消按钮。
返回值为`true` 或`false`。
10. `prompt()`: 显示一个提示对话框,包含一个消息和一个文本输入字段。
返回值为用户输入的文本或`null`。
这些方法都是`Window` 对象的一部分,可以通过新打开的窗口对象来调用。
例如:```javascriptlet newWindow = window.open('你需要的地址');newWindow.alert('这是一个警告对话框');```请注意,由于浏览器安全策略和用户设置的限制,某些方法(如`close()`)可能在新打开的窗口中不可用,或者需要特定的用户交互才能执行。
js中parent window的用法
在JavaScript中,"parent window"通常指的是包含当前窗口或页面的窗口。
这通常发生在一个窗口或标签页被另一个窗口或标签页打开时。
当你在一个iframe或新窗口中打开一个网页时,这个新页面或iframe可以访问其父窗口(即打开它的那个窗口)的属性和方法。
这被称为window.parent。
例如,如果你在一个页面中有一个链接,点击这个链接会在新的窗口或标签页中打开一个新页面。
新页面可以通过`window.parent`来访问原始页面。
以下是一些使用`window.parent`的示例:
1. 访问父窗口的属性:
```javascript
console.log(window.parent.document.title); // 输出父窗口的标题
```
2. 调用父窗口中的函数:
```javascript
window.parent.myFunction(); // 调用父窗口中的myFunction函数
```
3. 在iframe中与父窗口通信:
如果你想在一个iframe中与父窗口通信,你可以使用`window.postMessage`方法。
这是一个更安全和更现代的方式,因为它允许你控制哪些窗口可以接收消息,以及如何处理这些消息。
注意:使用`window.parent`时要小心跨站脚本攻击(XSS)。
如果你允许用户输入的内容被插入到`window.parent`中,那么恶意用户可能会尝试插入恶意代码来攻击你的网站。
因此,在处理用户输入时,请始终确保对其进行适当的验证和清理。
Window.Open参数、返回值js弹窗
Window.Open参数、返回值一、window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+二、基本语法:window.open(pageURL,name,parameters)其中:pageURL为子窗口路径name为子窗口句柄parameters为窗口参数(各参数用逗号分隔)三、示例:<SCRIPT>window.open('page.html','newwindow','height=100,width=400,top=0,left =0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status= no')//写成一行</SCRIPT>脚本运行后,page.html将在新窗体newwindow中打开,宽为100,高为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。
请对照。
上例中涉及的为常用的几个参数,除此以外还有很多其他参数,请见四。
四、各项参数其中yes/no也可使用1/0;pixelvalue为具体的数值,单位象素。
参数|取值范围|说明alwaysLowered|yes/no|指定窗口隐藏在所有窗口之后alwaysRaised|yes/no|指定窗口悬浮在所有窗口之上depended|yes/no|是否和父窗口同时关闭directories|yes/no|Nav2和3的目录栏是否可见height|pixelvalue|窗口高度hotkeys|yes/no|在没菜单栏的窗口中设安全退出热键innerHeight|pixelvalue|窗口中文档的像素高度innerWidth|pixelvalue|窗口中文档的像素宽度location|yes/no|位置栏是否可见menubar|yes/no|菜单栏是否可见outerHeight|pixelvalue|设定窗口(包括装饰边框)的像素高度outerWidth|pixelvalue|设定窗口(包括装饰边框)的像素宽度resizable|yes/no|窗口大小是否可调整screenX|pixelvalue|窗口距屏幕左边界的像素长度screenY|pixelvalue|窗口距屏幕上边界的像素长度scrollbars|yes/no|窗口是否可有滚动栏titlebar|yes/no|窗口题目栏是否可见toolbar|yes/no|窗口工具栏是否可见Width|pixelvalue|窗口的像素宽度z-look|yes/no|窗口被激活后是否浮在其它窗口之上1、最基本的弹出窗口代码其实代码非常简单:<SCRIPTLANGUAGE="javascript">window.open('page.html')</SCRIPT因为着是一段javascripts代码,所以它们应该放在<SCRIPTLANGUAGE="javascript">标签和</script>之间。
JSwindow对象的top、parent、opener含义介绍
JSwindow对象的top、parent、opener含义介绍1.top该变更永远指分割窗⼝最⾼层次的浏览器窗⼝。
如果计划从分割窗⼝的最⾼层次开始执⾏命令,就可以⽤top变量。
2.openeropener⽤于在window.open的页⾯引⽤执⾏该window.open⽅法的的页⾯的对象。
例如:A页⾯通过window.open()⽅法弹出了B页⾯,在B页⾯中就可以通过opener来引⽤A页⾯,这样就可以通过这个对象来对A页⾯进⾏操作。
3.parentparent⽤于在iframe,frame中⽣成的⼦页⾯中访问⽗页⾯的对象。
例如:A页⾯中有⼀个iframe或frame,那么iframe或frame中的页⾯就可以通过parent对象来引⽤A页⾯中的对象。
这样就可以获取或返回值到A页⾯中。
4.另外self 指的是当前窗⼝parent与opener的区别:parent指⽗窗⼝,在FRAMESET中,FRAME的PARENT就是FRAMESET窗⼝。
opener指⽤WINDOW.OPEN等⽅式创建的新窗⼝对应的原窗⼝。
parent是相对于框架来说⽗窗⼝对象opener是针对于⽤window.open打开的窗⼝来说的⽗窗⼝,前提是window.open打开的才有document.parentWindow.menthod()調⽤⽗⾴⾯的⽅法附:Window对象、Parent对象、Frame对象、Document对象和Form对象的阶层关系Window对象→Parent对象→Frame对象→Document对象→Form对象,如下: parent.frame1.document.forms[0].elements[0].value;。
JavaScript中windows.open()、windows.close()方法详解
JavaScript中windows.open()、windows.close()⽅法详解windows.open()⽅法详解:window.open(URL,name,features,replace)⽤于载⼊指定的URL到新的或已存在的窗⼝中,并返回代表新窗⼝的Window对象。
它有4个可选的参数:URL:⼀个可选的字符串,声明了要在新窗⼝中显⽰的⽂档的 URL。
如果省略了这个参数,或者它的值是空字符串,那么新窗⼝就不会显⽰任何⽂档。
name:⼀个可选的字符串,该字符串是⼀个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗⼝的名称。
这个名称可以⽤作标记 <a> 和 <form> 的属性 target 的值。
如果该参数指定了⼀个已经存在的窗⼝,那么open()⽅法就直接使⽤这个窗⼝。
在这种情况下,指定窗⼝特征的features参数将被忽略。
保留的名字:“_ blank”、“_ parent” 、“_ top”指新窗⼝显⽰位置。
features:(⾮标准的,建议忽略该参数)⼀个可选的字符串,声明了新窗⼝要显⽰的标准浏览器的特征。
如果省略该参数,新窗⼝将具有所有标准特征。
在以下窗⼝特征这个表格中,我们对该字符串的格式进⾏了详细的说明。
replace:⼀个可选的布尔值。
规定了装载到窗⼝的 URL 是在窗⼝的浏览历史中创建⼀个新条⽬,还是替换浏览历史中的当前条⽬。
⽀持的值:true - URL替换浏览历史中的当前条⽬;false - URL在浏览历史中创建新的条⽬。
新的顶层浏览器窗⼝由⽅法 Window.open() 创建。
当调⽤该⽅法时,应把 open() 调⽤的返回值存储在⼀个变量中,然后使⽤那个变量来引⽤新窗⼝。
新窗⼝的 opener 属性反过来引⽤了打开它的那个窗⼝。
请不要混淆⽅法 Window.open() 与⽅法 Document.open(),这两者的功能完全不同。
Iframe、window.open、window.showModalDialog
2.子窗口操作父窗口
刷新:
(1)、window.parent.location.href=window.parent.location.href;
(2)、window.parent.location.reload();
}
else
{//如果是FF
document.getElementById(ObjectID).contentDocument.getElementById(ContentID).innerHTML="我是FF下通过父窗口赋值过来的";
alert(' 还没有打开窗口或者已关闭');
}
}
取值:
alert(window.document.getElementById("OpenDiv").innerHTML);
赋值:
win.document.getElementById("OpenDiv").innerHTML="我是从父窗口中传过来的值t; 下面是解决方法
//if(document.all){
// alert(document.getElementById('div1').innerText);
//关闭本窗口
function CloseWindow()
{ //window.opener.opener=null;
window.close();
}
关闭父窗口:
//关闭父窗口
function CloseParent()
{ //火狐下不起作用,如果要想起作用。用下面的方法
总结JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作
关于不同浏览器对JS的支持与区别
首先,要用JS区别不同的浏览器。
至于浏览器的支持效果,只能由经验与资料去判断了,并无一定标准。
而且同一浏览器不同版本也会有所区别。
/***DreamCore - JsLib/AgentDate : Dec 09, 2006Copyright: DreamSoft Co.,Ltd.Mail : Dream@Dreamsoft.CaAuthor : EgmaxBrowser : IE5.0+,Firefox1.5+,Netscape6.0+,Opera5.0+Update:***/var __Agt = erAgent.toLowerCase();var __If = /(firefox|netscape|opera).?[\/| ](.)\.([^;\)]+|[^\)]+\))$/.exec(__Agt);if(!__If) __If = /(msie) (.)\.[^;]+;/.exec(__Agt);var _Br=__If[1], _Ver=__If[2];alert(_Br+_Ver);很COOL的代码,测试过可以区分MSIE6与火狐接下来是它们对JS的常见区别:1. document.formName.item("itemName")的问题说明:ie下,可以使用document.formName.item("itemName")或document.formName.elements["elementName"];firefox下,只能使用document.formName.elements["elementName"]。
解决方法:统一使用2.集合类对象问题说明:IE下,可以使用()或[]获取集合类对象;Firefox下,只能使用[]获取集合类对象.解决方法:统一使用[]获取集合类对象。
3.自定义属性问题说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性。
Javascript中Window.open参数详解
Javascript中Window.open参数详解关于Window.open的参数⼩结(参书改编)先看⼀个例⼦:[javascipt:]window.open("Webpage.asp?",Derek,"height=100,width=100,status=yes,toolbar=yes,menubar=no,location=no");此语句打开⼀个新窗⼝,页⾯为webpage.asp,参数为var,名字为Derek,⾼为100,宽为100,显⽰状态栏和⼯具条,不显⽰菜单和地址。
具体总结的各个属性参数如下:window = object.open([URL ][, name ][, features ][, replace]]]])URL:新窗⼝的URL地址name:新窗⼝的名称,可以为空featurse:属性控制字符串,在此控制窗⼝的各种属性,属性之间以逗号隔开。
fullscreen= { yes/no/1/0 } 是否全屏,默认nochannelmode= { yes/no/1/0 } 是否显⽰频道栏,默认notoolbar= { yes/no/1/0 } 是否显⽰⼯具条,默认nolocation= { yes/no/1/0 } 是否显⽰地址栏,默认nodirectories = { yes/no/1/0 } 是否显⽰转向按钮,默认nostatus= { yes/no/1/0 } 是否显⽰窗⼝状态条,默认nomenubar= { yes/no/1/0 } 是否显⽰菜单,默认noscrollbars= { yes/no/1/0 } 是否显⽰滚动条,默认yesresizable= { yes/no/1/0 } 是否窗⼝可调整⼤⼩,默认nowidth=number 窗⼝宽度(像素单位)height=number 窗⼝⾼度(像素单位)top=number 窗⼝离屏幕顶部距离(像素单位)left=number 窗⼝离屏幕左边距离(像素单位) 经常上⽹的朋友可能到过这样⼀些⽹站,⼀进⼊⾸页⽴刻会弹出⼀个窗⼝,或者按⼀个链接或按钮弹出,通常在这个窗⼝⾥会显⽰⼀些注意事项、版权信息、警告、欢迎光顾之类的话或者作者想要特别提⽰的信息。
JS中window对象的open和openDialog方法使用
弹出窗口控制-window.open()弹出窗口控制-CSS+DIV弹出窗口控制-网页对话框2009-03-29 15:46分类:javaScript字号:大中小这里说的网页对话框是指通过脚本代码打开一个新的窗口,并且该窗口可以有返回值。
网页对话框分为网页模式对话框和网页非模式对话框。
(模式和非模式的区别我在这里就不赘述了)。
下面我们只针对网页模式对话框进行说明:弹出网页模式对话框:格式:var somevalue=window.showModalDialog(url[,Arguments[,Features]]);参数说明:url :指定url文件地址。
Argument :用于向网页对话框传递参数,传递参数的类型不限制,对于字符串类型,最大为4096字符。
也可以传递对象。
如index.html.在弹出的窗口中可通过var parameter=window.dialogArguments;获取传递来的参数。
Features:可选项。
窗口对话框的设置参数。
主要参数如下表:参数说明dialogWidth :number用于设置对话框的宽度dialogHeight :number用于设置对话框的高度dialogTop :number用于设置对话框窗口相对于桌面左上角的top位置dialogLeft :number用于设置对话框窗口相对于桌面左侧的left位置center :{yes|no|1|0}用于指定是否将对话框在桌面上居中,yes|1为居中,默认值为yesHelp :{yes|no 1|0}用于指定对话框窗口中是否显示上下文敏感的帮助图标。
默认为yesscroll :{yes|no 1|0}用于指定对话框中是否显示滚动条示例:说明:点击按钮后打开一网页模式对话框。
在网页对话框中选择一个值后关闭该模式对话框。
并将返回值传递到父窗口中。
如下:<script language="javascript">function openDialog(){var somevalue=window.openModalDialog("test.jsp","","dialogWidth=400p x;dialogHeight=300px;help=no;status=no")erName=somevalue;}在弹出的模式对话框中调用一个js函数向打开的窗口返回信息function action(user){parent.window.returnValue=user;window.close();}流程:通过window.openModalDialog()打开一模式窗口,在打开的窗口中调用action()函数将返回值传递给打开的对话框。
window.opener的用法
window.opener的⽤法window.opener 实际上就是通过window.open打开的窗体的⽗窗体。
⽐如在⽗窗体parentForm⾥⾯通过 window.open("subForm.html"),那么在subform.html中 window.opener就代表parentForm,可以通过这种⽅式设置⽗窗体的值或者调⽤js⽅法。
如:1,window.opener.test(); ---调⽤⽗窗体中的test()⽅法2,如果window.opener存在,设置parentForm中stockBox的值。
if (window.opener && !window.opener.closed) {window.opener.document.parentForm.stockBox.value = symbol;}1>window.opener 的⽤法在⼀般的⽤法中,只是⽤来解决关闭窗⼝时不提⽰弹出窗⼝,⽽对它更深层的了解⼀般⽐较少。
其实 window.opener是指调⽤window.open⽅法的窗⼝。
在⼯作中主要是⽤来解决部分提交的。
这种跨页操作对⼯作是⾮常有帮助的。
如果你在主窗⼝打开了⼀个页⾯,并且希望主窗⼝刷新就⽤这个,打开页⾯的window.opener就相当于主窗⼝的window。
主窗⼝的刷新你可以⽤window.opener.location.reload();如果你⽤虚拟的⽬录:如struts的*.do会提⽰你重试你可以改成这样 window.opener.yourformname.submit()就好了2〉在应⽤中有这样⼀个情况,在A窗⼝中打开B窗⼝,在B窗⼝中操作完以后关闭B窗⼝,同时⾃动刷新A窗⼝function closeWin(){hasClosed = true;window.opener.location="javascript:reloadPage();";window.close();}function window.onbeforeunload(){if(!hasClosed){window.opener.location="javascript:reloadPage();";}}</script>上⾯的代码在关闭B窗⼝的时候会提⽰错误,说缺少Object,正确的代码如下:function closeWin(){hasClosed = true;window.opener.location="javascript:reloadPage();";window.opener=null;window.close();}function window.onbeforeunload(){if(!hasClosed){//如果已经执⾏了closeWin⽅法,则不执⾏本⽅法window.opener.location="javascript:reloadPage();";}}</script>reloadPage⽅法如下:function reloadPage() {history.go(0);document.execCommand("refresh")document.location = document.location;document.location.reload();}PS:由于需要⽀持正常关闭和强制关闭窗⼝时能捕捉到事件,⽤了全局变量hasClosed==============================================补充,在⽗窗⼝是frame的时候在刷新⽗窗⼝的时候会出现问题:The page cannot be refreshed without resending the information.后修改如下:window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;不需要执⾏⾃带的reload()⽅法,注意,不要再画蛇添⾜加上这⼀句:window.opener.parent.document.frames.item('mainFrame').location.reload();========================================================================================最后,为了同时⽀持刷新普通⽗窗⼝和frame⽗窗⼝,代码如下:function closeWin() {hasClosed = true;<%if(null != frame){%>window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;<%}else{%>window.opener.location = "javascript:reloadPage();";<%}%>//window.opener.top.mainFrame.location="javascript:reloadPage();";//self.opener.frames.mainFrame.location.reload(true);window.opener = null;window.close();}function window.onbeforeunload(){if (!hasClosed) {<%if(null != frame){%>window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;<%}else{%>window.opener.location = "javascript:reloadPage();";<%}%>window.opener = null;}}关于window.openerwindow.opener 的⽤法window.opener 返回的是创建当前窗⼝的那个窗⼝的引⽤,⽐如点击了a.htm上的⼀个链接⽽打开了b.htm,然后我们打算在b.htm上输⼊⼀个值然后赋予a.htm上的⼀个id为“name”的textbox中,就可以写为:window.opener.document.getElementById("name").value = "输⼊的数据";对于javascrīpt中的window.opener没有很好的理解。
父窗口和子窗口JS之间的方法调用
父窗口和子窗口JS之间的方法调用父窗口和子窗口之间的方法调用是在Web开发中常见的需求。
如果一个网页中包含了一个iframe元素,iframe中的网页就成为子窗口,而包含iframe的网页就成为父窗口。
通过JavaScript,我们可以在父窗口中调用子窗口中的方法,或者在子窗口中调用父窗口中的方法。
父窗口调用子窗口的方法通常需要两个步骤:1. 获取子窗口对象:通过父窗口的window对象的frames属性或者getElementById方法可以获取到子窗口的window对象。
2. 调用子窗口的方法:获取到子窗口对象后,就可以直接调用子窗口中定义的方法了。
例如,如果子窗口中有一个名为"test"的方法,可以使用子窗口对象的"test("来调用它。
下面是一个具体的例子,演示了父窗口如何调用子窗口中的方法:```html<!DOCTYPE html><html><head><title>父窗口调用子窗口的方法</title></head><body><iframe id="myIframe" src="child.html"></iframe>function callChildMetho//获取子窗口对象var childWindow =document.getElementById("myIframe").contentWindow;//调用子窗口中的方法childWindow.test(;}</script></body></html>```在上面的例子中,父窗口中定义了一个名为"callChildMethod"的方法。
当点击页面中的一些按钮时,该方法会被触发。
js操作frame详细解说,window.opener和window.parent的区别
js操作frame详细解说,window.opener和window.parent的区别js操作frame详细解说,window.opener和window.parent的区别frame框架⾥的页⾯要改其他同框架下的页⾯或⽗框架的页⾯就⽤parentwindow.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 = [这⾥填写你的域名]document.getElementById('iframeid').contentWindow.document.getElementById('someelementid');。
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,如果D中js这样写"window.location.href"、"location.href":D页⾯跳转"parent.location.href":C页⾯跳转"top.location.href":A页⾯跳转现在终于明⽩了连接的时候target的⽤法了:_blank:重新打开⼀个窗⼝_parent:⽗窗⼝执⾏重定向_self:⾃⾝页⾯重定向_top:第⼀个⽗窗⼝重定向综上所述可知:parent.window:⽗窗⼝对象 top.window:第⼀个⽗窗⼝的对象下⾯来重点看看window.parent与window.openner区别window.parent 是iframe页⾯调⽤⽗页⾯对象,当我们想从iframe内嵌的页⾯中访问外层页⾯是可以直接利⽤window.parent获取;例⼦如下:A.html复制代码代码如下:<html><head><title>⽗页⾯</title></head><body><form id="form1" action=""><div>输⼊值:<input type="text" name="username" id="username" /><br /><iframe src="b.html" width="400px" height="300px"></iframe></div></form></body></html>B.html复制代码代码如下:<html><head><script type="text/javascript">function getpValue(){document.getElementByIdx_x_x_x("span1").innerText=window.parent.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.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>下⾯来举⼏个常⽤的例⼦:parent.window与top.window⼀般在分割的页⾯即 frameset或iframe中使⽤注销整个框架后返回到login.aspx:parent.window.location='Login.aspx'或者top.window.location='Login.aspx'window.parent也是常在框架中使⽤,刷新:window.parent.location.reload();或者刷新某个框架:window.parent.MainForm.location.reload();获得其他框架的元素值:window.parent.MainForm.form1.text1.value;window.opener主要是获得通过超链接或者 window.open() 打开本⾝页⾯的页⾯的⼀些,⽐如获得值,刷新等刷新:window.opener.location.reload();获值:window.opener.document.getElement("txtName").value;后退:top.playFrame.history.go(-1);前进: top.playFrame.history.go(1);刷新: top.playFrame.location.reload();就总结到这⾥,这些对象很实⽤。
js获取iframe中的window对象的实现方法
Js获取iframe中的window对象的实现方法介绍在开发网页应用时,我们经常会使用`<if r am e>`元素来加载其他网页内容。
然而,由于`<i fr am e>`元素与主页面是分离的,我们需要通过J a va Sc ri pt来获取`<if ra me>`中的`wi n do w`对象,以便进行进一步的操作。
本文将介绍几种实现方法来获取`<i fr am e>`中的`win d ow`对象。
方法一:使用i d属性直接获取w i n d o w对象在`<i fr am e>`元素上设定一个唯一的i d属性,通过该i d属性可以直接获取`w in do w`对象。
```j av as cr ip tl e ti fr am eW in do w=d o cu me nt.g et El eme n tB yI d('m yI fr ame').co nt e nt Wi nd ow;```方法二:使用J a v a S c r i p t的`wi ndow.f rames` 属性获取windo w 对象`w in do w.fr am es`属性返回了当前窗口中所有的`if ra me`窗口对象。
通过遍历该对象,我们可以找到目标`<if r am e>`并获取其`wi n do w`对象。
```j av as cr ip tl e tf ra me s=wi nd ow.f ra me s;f o r(le ti=0;i<f ram e s.le ng th;i++){l e ti fr am eW in do w=f r am es[i];i f(i fr am eW in do w.f r am eE le me nt.i d==='m yI fr am e'){//找到目标if ra me,并获取其w in do w对象b r ea k;}}```方法三:使用J a v a S c r i p t的`wi ndow.p arent` 属性获取windo w 对象如果`<if ra me>`的父文档与主页面同域,我们可以使用`w in do w.pa re nt`属性获取父文档的`w i nd ow`对象,然后再通过该对象获取`<if ra me>`的`w in do w`对象。
js---opener
2个方法都是刷新父窗口,但是其中还是有奥妙的哦。
window.opener.location.reload();这个方法在强迫父窗口的时候,在有些IE浏览器(比如安全设置高)的情况下,会弹出一个确认对话框,提示是不是要重新再刷新一次页面,这可是比较郁闷的事情哦,我后来把这个方法替换成了window.opener.location.href=window.opener.location.href;就不会出现那样的问题了。
window.opener其实是指本窗口的父窗口,比如,one.jsp 通过popupwindow打开了two.jsp,哪么在two.jsp里面的window.opener就是指one.jsp,所以在two.jsp里面完全可以用window.opener调用任何一个one.jsp里面的方法,实现one.jsp和two.jsp的交互。
注意:window.opener.location.href只是一个链接,如果想实现父窗口的提交就要调用window.opener.action="" 和window.opener.submit();方法,但是不幸的是这段代码在firefox下不能运行,解决的办法为在父窗口中写一个提交的function在子窗口中通过window.opener.functionname()调用。
通常在使用window.opener的时候要去判断父窗口的状态,如果父窗口被关闭或者更新,就会出错,解决办法是加上如下的验证if(window.opener && !window.opener.closed)有时我们需要在新打开的窗口里面编辑信息,等编辑完了,需要将当前窗口关闭并且刷新父窗口,以使修改生效,本文就是介绍用 javascript 来实现"更新记录后关闭子窗口并刷新父窗口".1.<script language="JavaScript"type="text/javascript">2.<!--3.function refreshParent()4.{5. window.opener.location.href =window.opener.location.href;6. if (window.opener.progressWindow)7. {8. window.opener.progressWindow.close();9. }10. window.close();11.}12.//-->13.</script>14.15.<a href="javascript:void(0)"onclick="refreshParent()">刷新父窗口并关闭当前窗口</a>16.1: window.parent 是iframe页面调用父页面对象举例:a.html17.程序代码18.<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>19.如果我们需要在b.htm中要对a.htm中的username文本框赋值,就如很多上传功能,上传功能页在Ifrmae中,上传成功后把上传后的路径放入父页面的文本框中我们应该在b.html中写20.程序代码21.<script type="text/javascript">var _parentWin = window.parent ;_ername.value = "xxxx" ;</script>22.实例地址:/blog/attachments/window.parent 实例/a.html2: window.opener 是window.open 打开的子页面调用父页面对象a.html23.程序代码24.<script type="text/javascript">function openSubWin(){var _width = 300 ;var _height = 200 ;var _left = (screen.width - _width) / 2 ;var _top = (screen.height - _height) / 2 ;window.open("b.html",null,"height=" + _height + ",width=" + _width +",status=no,toolbar=no,menubar=no,location=no,resizable=yes,lef t=" + _left + ",top=" + _top);}</script><input type="text" name="username" id="username"/><input type="button" value="弹出子页面" onClick="openSubWin();"> 25.b.html26.程序代码27.<script type="text/javascript">function UpdateParent(){var _parentWin = window.opener ;_ername.value = "xxxx" ;}</script><input type="button" name="button" id="button" value="更新主页面的UserName内容" onClick="UpdateParent();">。
JavaScript的document对象和window对象详解
JavaScript的document对象和window对象详解 该对象是window和frames对象的⼀个属性,是显⽰于窗⼝或框架内的⼀个⽂档。
属性 alinkColor 活动链接的颜⾊(ALINK) anchor ⼀个HTMI锚点,使⽤<A NAME=>标记创建(该属性本⾝也是⼀个对象) anchors array 列出⽂档锚点对象的数组(<A NAME=>)(该属性本⾝也是⼀个对象) bgColor ⽂档的背景颜⾊(BGCOLOR) cookie 存储于cookie.txt⽂件内的⼀段信息,它是该⽂档对象的⼀个属性 fgColor ⽂档的⽂本颜⾊(<BODY>标记⾥的TEXT特性) form ⽂档中的⼀个窗体(<FORM>)(该属性本⾝也是⼀个对象) forms anay 按照其出现在⽂档中的顺序列出窗体对象的⼀个数组(该属性本⾝也是⼀个对象) lastModified ⽂档最后的修改⽇期 linkColor ⽂档的链接的颜⾊,即<BODY>标记中的LINK特性(链接到⽤户没有观察到的⽂档) link ⽂档中的⼀个<A HREF=>标记(该属性本⾝也是⼀个对象) links array ⽂档中link对象的⼀个数组,按照它们出现在⽂档中的顺序排列(该属性本⾝也是⼀个对象) location 当前显⽰⽂档的URL。
⽤户不能改变document.location(因为这是当前显⽰⽂档的位置)。
但是,可以改变window.location (⽤其它⽂档取代当前⽂档)window.location本⾝也是⼀个对象,⽽document.location不是对象 referrer 包含链接的⽂档的URL,⽤户单击该链接可到达当前⽂档 title ⽂档的标题((TITLE>) vlinkColor 指向⽤户已观察过的⽂档的链接⽂本颜⾊,即<BODY>标记的VLINK特性 ⽅法 clear 清除指定⽂档的内容 close 关闭⽂档流 open 打开⽂档流 write 把⽂本写⼊⽂档 writeln 把⽂本写⼊⽂档,并以换⾏符结尾 它是⼀个顶层对象,⽽不是另⼀个对象的属性即浏览器的窗⼝。
调用父页面js方法
调用父页面js方法
要调用父页面的JS方法,可以使用以下方法:
1. 使用window.parent对象来访问父页面的全局对象,例如:
window.parent.methodName();
2. 使用window.opener对象来访问打开当前页面的父窗口对象,例如:
window.opener.methodName();
3. 如果父页面的JS方法通过全局变量或者设置了window对象的属性进行了定义,可以直接通过访问window对象来调用,例如:
window.methodName();
4. 如果父页面的JS方法是通过iframe框架加载的,可以通过以下方法来获取到父页面的window对象,然后进行调用:
var parentWindow = window.parent.frames['iframeName'].window; parentWindow.methodName();
需要注意的是,以上方法只适用于在同一域名下的窗口间进行通信,如果是跨域的情况,可以考虑使用postMessage进行消息传递。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
frame框架里的页面要改其他同框架下的页面或父框架的页面就用parentwindow.opener引用的是window.open打开的页面的父页面。
window.frames对象可以引用iframe里的页面,也可以引用frameset里的页面。
可以这样window.frames["iframe"].window.save();window.frames[0].document.getElementByIdx_x('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 = [这里填写你的域名]document.getElementByIdx_x('iframeid').contentWindow.document.getElementByIdx_x('someel ementid');window.opener 实际上就是通过window.open打开的窗体的父窗体。
比如在父窗体parentForm里面通过window.open("subForm.html"),那么在subform.html中window.opener就代表parentForm,可以通过这种方式设置父窗体的值或者调用js方法。
如:1,window.opener.test(); ---调用父窗体中的test()方法2,如果window.opener存在,设置parentForm中stockBox的值。
if (window.opener && !window.opener.closed) {window.opener.document.parentForm.stockBox.value = symbol;}1>window.opener 的用法在一般的用法中,只是用来解决关闭窗口时不提示弹出窗口,而对它更深层的了解一般比较少。
其实window.opener是指调用window.open方法的窗口。
在工作中主要是用来解决部分提交的。
这种跨页操作对工作是非常有帮助的。
如果你在主窗口打开了一个页面,并且希望主窗口刷新就用这个,打开页面的window.opener 就相当于主窗口的window。
主窗口的刷新你可以用window.opener.location.reload();如果你用虚拟的目录:如struts的*.do会提示你重试你可以改成这样window.opener.yourformname.submit()就好了2〉在应用中有这样一个情况,在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口function closeWin(){hasClosed = true;window.opener.location="javascript:reloadPage();";window.close();}function window.onbeforeunload(){if(!hasClosed){window.opener.location="javascript:reloadPage();";}}</script>上面的代码在关闭B窗口的时候会提示错误,说缺少Object,正确的代码如下:function closeWin(){hasClosed = true;window.opener.location="javascript:reloadPage();";window.close();}function window.onbeforeunload(){if(!hasClosed){//如果已经执行了closeWin方法,则不执行本方法window.opener.location="javascript:reloadPage();";}}</script>reloadPage方法如下:function reloadPage() {history.go(0);document.execCommand("refresh")document.location = document.location;document.location.reload();}PS:由于需要支持正常关闭和强制关闭窗口时能捕捉到事件,用了全局变量hasClosed==============================================补充,在父窗口是frame的时候在刷新父窗口的时候会出现问题:The page cannot be refreshed without resending the information.后修改如下:window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;不需要执行自带的reload()方法,注意,不要再画蛇添足加上这一句:window.opener.parent.document.frames.item('mainFrame').location.reload();=============================================================================== =========最后,为了同时支持刷新普通父窗口和frame父窗口,代码如下:function closeWin() {hasClosed = true;<%if(null != frame){%>window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;<%}else{%>window.opener.location = "javascript:reloadPage();";<%}%>//window.opener.top.mainFrame.location="javascript:reloadPage();";//self.opener.frames.mainFrame.location.reload(true);window.close();}function window.onbeforeunload(){if (!hasClosed) {<%if(null != frame){%>window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;<%}else{%>window.opener.location = "javascript:reloadPage();";<%}%>window.opener = null;}}关于window.openerwindow.opener 的用法window.opener 返回的是创建当前窗口的那个窗口的引用,比如点击了a.htm上的一个链接而打开了b.htm,然后我们打算在b.htm上输入一个值然后赋予a.htm上的一个id为“name”的textbox中,就可以写为:window.opener.document.getElementByIdx_x("name").value = "输入的数据";对于javascrīpt中的window.opener没有很好的理解。
为什么框架中不能使用,弹出窗口的父窗口不能在框架里面的某个页面呢?那怎样通过弹出窗口操作框架中的父窗口呢?opener.parent.frames['frameName'].document.all.input1.value 试试这个:)正确使用window.open返回对象的opener众所周知JavaScript中:var win = window.open(url,windowName,...); 的使用,而win.opener则是指向父窗口的引用然而,有种情况却比较特别,假如有两个窗口window1和window2按下列步骤执行:var win = window.open(url,windowName,...);// (window1)var win = window.open(url,windowName,...);//(window2)其中先后这两次打开的子窗口的windowName一样此时你会发现在window2中的win.opener却不是指向window2的,却是指向window1.如果你想在子窗口关闭父窗口的话,就不正确了,因此可以修改上面的执行方法为:var win = window.open(url,windowName,...);? (window1)win.opener = window;var win = window.open(url,windowName,...);? (window2)win.opener = window;只有这样修改才OK通过window.showModalDialog或者.showModelessDialog弹出的页面这种情况需要两个步骤:1 在父窗口.showModalDialog或.showModelessDialog方法的第二个参数传递window对象比如: window.showModelessDialog('a.htm',window);2 在a.htm中就可以通过window.dialogArguments获取该参数比如: window.dialogArguments.fun1();PS:子窗口可以通过设置window.returnValue设置页面返回值比如: window.returnValue=’OK’;window.close();strRtn=window.showModalDialog(......)这时,strRtn='ok'页面中实现:父页面function reloadPage() {document.form1.submit();}弹出页面调用closeWin();function closeWin(){hasClosed = true;window.opener.location="javascript:reloadPage();";window.opener=null; window.close();}。