opener与parent的区别
opener
opener用于在window.open的页面引用执行该window.open方法的的页面的对象。例如:A页面通过window.open()方法弹出了B页面,在B页面中就可以通过opener来引用A页面,这样就可以通过这个对象来对A页面进行操作。
所以在调用opener的对象前,要先判断对象是否为null,否则会出现“对象为空或者不存在”的JS错误。
window.opener 返回的是创建当前窗口的那个窗口的引用,比如点击了a.htm上的一个链接而打开了
b.htm,然后我们打算在b.htm上输入一个值然后赋予a.htm上的一个id为“name”的textbox中,就可以
写为:window.opener.document.getElementById("name").value = "输入的数据";
parent
parent用于在iframe,frame中生成的子页面中访问父页面的对象。例如:A页面中有一个iframe或frame,那么iframe或frame中的页面就可以通过parent对象来引用A页面中的对象。这样就可以获取或返回值到A页面中。
parent指父窗口,在FRAMESET中,FRAME的PARENT就是FRAMESET窗口。
opener指用WINDOW.OPEN等方式创建的新窗口对应的原窗口。
两者肯定不一样。
parent是相对于框架来说父窗口对象
opener是针对于用window.open打开的窗口来说的父窗口,前提是window.open打开的才有。
//////////////showModalDialog取得父窗口的方法////////////////
通常使用window.open的方式开启新窗口的话
要取得父窗口的控件,可以用window.opener来取得父窗口
然而如果使用showModalDialog的话...却无效
如果有需要的话,需要修改开启的语法以及showModalDialog中的语法
开启语法第2个参数请下self,范例如下
var rc=window.showModalDialog(strURL,self,sFeatures);
然后接着就是在子窗口呼叫父窗口的语法
var pWindow=window.dialogArguments;
这样就可以取得父窗口的window对象控制了。例如:
window.dialogArguments.document.getElementsByName("processId")[0].value;
思归教的方法:
if you are using window.showModalDialg( "添加页面 ",window), in your 添加页面, call
window.dialogArguments.location.href =window.dialogArguments.location.href;
or
window.dialogArguments.location.reload(true);
分享到:
相关推荐
1> window.showModalDialog()采用JS原理实现,同时父窗口不可操作,window.open()采用新创建一个窗口,同时父窗口可操作; 2> 父窗口与子窗口传递值的方式也有所不同,在子窗口中操作父窗口也语法也不同,分别为var...
在JavaScript中,`showModalDialog`是一个非常有用的函数,它允许我们打开一个新的浏览器窗口或对话框,并与父窗口进行交互。这个功能在开发过程中经常用于创建弹出式表单、确认对话框或者需要用户输入信息的场景。...
这里的`window.parent.dialogArguments`是指向父窗口传递的数据对象。`execCommand('Refresh')`是一个命令,它告诉浏览器刷新当前文档。需要注意的是,`execCommand`方法在现代浏览器中已经被废弃,因此这种方法可能...
总结一下,子窗口向父窗口传递值主要依赖于`window.parent`和`window.opener`这两个属性,它们允许子窗口访问并操作父窗口的DOM元素。通过结合查询字符串传递初始数据和JavaScript操作,可以实现复杂的跨窗口通信。...
如果需要访问父窗口的父窗口的元素,可以继续使用window.parent.parent来获取,依此类推,我们还可以使用***或window.opener来获取顶层窗口或打开当前窗口的原窗口的文档对象。 在创建子窗口和进行父窗口与子窗口...
如果`showModalDialog`是在父窗口中被调用的,那么在子窗口中,`window.dialogArguments`相当于就是父窗口的`window`对象的引用,可以用来访问父窗口的属性和方法。 接下来,考虑另一种场景,使用`window.open`方法...
`window.open()`打开新窗口后,可以在子窗口中监听`message`事件,然后通过`window.parent.postMessage()`向父窗口发送数据。 总结一下,JavaScript实现弹出子窗口并传值给父窗口的基本步骤包括: 1. 在父窗口中...
在网页开发中,有时我们需要从一个弹出的子窗口(通常是由 `window.open` 或 `window.showModalDialog` 方法打开的)来控制父窗口的行为,比如刷新父窗口的页面。这在很多应用场景下都非常有用,比如用户在子窗口...
如果父窗口还有父窗口(例如在多层iframe嵌套的情况下),可以通过连续使用`window.parent`来获取更高层级父窗口的元素。例如,获取父窗口的父窗口中的元素可以这样写: ```javascript $("#...
总之,通过`window.showModalDialog()`和`window.returnValue`,我们可以实现模态窗口与父窗口之间的通信,完成数据提交后刷新父窗口的效果。同时,理解JavaScript中与窗口交互相关的API和技巧,有助于提高代码的...
如果父窗口是通过`window.showModalDialog()`方法打开的对话框,那么`dialogArguments`属性可以用来引用父窗口。`execCommand()`是HTML文档的执行命令的方法,其中`'Refresh'`命令可以刷新页面。 ```javascript ...
如果子页面是通过`window.open()`函数打开的,可以使用`window.opener`属性来引用父窗口并刷新它: ```html window.opener.location.reload(); ``` 这行代码会刷新打开当前子页面的那个父窗口。 3. 子窗口...
`self`指的是当前窗口,`opener`则指向创建它的父窗口。 ```javascript self.opener.location.reload(); ``` 4. **刷新以`open()`方法打开的窗口**: 如果父页面是通过`window.open()`打开的,除了上述方法外,...
在处理父窗口刷新问题时,对于使用`window.open`打开的窗口,可以通过`window.opener.location.reload();`来刷新父窗口。而对于`showModalDialog()`打开的对话框,可以使用`window.parent.dialogArguments.document....
例如,子窗口可以使用`window.opener.location.reload()`来刷新父窗口的页面,或者使用`window.opener.location.href`来获取父窗口的URL。 #### 五、注意事项 1. **跨域限制**:当使用`window.open()`打开的窗口与...
在父子页面交互中,可以通过`window.opener`对象访问父窗口,实现数据传递。例如,子页面可以修改父页面的某个变量或者调用父页面的函数。这种方式灵活且广泛适用,但需注意跨域安全问题。 `showModalDialog`与`...
在使用 `window.open()` 或者 `showModalDialog()` 打开子窗口后,有时候需要在关闭子窗口后刷新父窗口。这里提供两种方法: 1. **使用 `window.open()` 打开的窗口**: ```javascript window.opener.location....
16. **parent**: 返回当前窗口的父窗口,对于框架,父窗口通常是包含框架的窗口。 17. **returnValue**: 用于在模态对话框中向调用窗口返回值。 18. **screen**: 提供关于用户屏幕的信息,如分辨率和颜色深度。 19. ...