通常使用window.open的方式开启新窗口的话
要取得父窗口的控件,可以用window.opener来取得父窗口
然而如果使用showModalDialog的话...却无效
如果有需要的话,需要修改开启的语法以及showModalDialog中的语法
开启语法
第2个参数请填写为window,范例如下 :
var rc=window.showModalDialog(strURL,window,sFeatures);
然后接着就是呼叫父窗口的语法
var pWindow=window.dialogArguments;
这样就可以取得父窗口的window对象控制了。例如:
window.dialogArguments.location.href="你的操作(Action或是页面转向等)";
window.dialogArguments.document.getElementsByName("processId")[0].value;
js中 opener和parent的区别
opener即谁打开我的,比如A页面利用window.open弹出了B页面窗口,那么A页面所在窗口就是B页面的 opener,在B页面通过opener对象可以访问A页面。
parent同样表示父窗口,比如一个A页面利用iframe或frame调用B页面,那么A页面所在窗口就是B页面的 parent。
在JS中,window.opener只是对弹出窗口的母窗口的一个引用。比如:
a.html中,通过点击按钮等方式window.open出一个新的窗口b.html。那么在b.html中,就可以通过window.opener(省略写为opener)来引用a.html,包括a.html的document等对象,操作a.html的内容。
假如这个引用失败,那么将返回null。所以在调用opener的对象前,要先判断对象是否为null,否则会出现“对象为空或者不存在”的JS错误。
<html>
<body>
<form. name=form1>
<input type=text name=inpu >
<input type=button >
</form>
</body>
</html>
--------------------------------
back2opener.html
--------------------------------
<html>
<body>
<form. name=form1>
<input type=text name=inpu >
<a class=under href=# >添加</a>
</form>
</body>
</html>
window.opener 返回的是创建当前窗口的那个窗口的引用,比如点击了a.htm上的一个链接而打开了b.htm,然后我们打算在b.htm上输入一个值然后赋予a.htm上的一个id为“name”的textbox中,就可以写为:
window.opener.document.getElementById("name").value = "输入的数据";
分享到:
相关推荐
在JavaScript编程语言中,`Window.showModalDialog()`方法是一个非常重要的功能,主要用于打开一个模态对话框,即用户必须关闭对话框才能与父窗口进行交互。这个方法在创建用户交互和自定义弹出窗口场景中非常有用。...
当对话框关闭时,父窗口可以通过`window.onmodaldialogreturn`事件监听返回值。但请注意,这个事件并不标准化,不同的浏览器可能有不同的实现。 7. **兼容性问题** `window.showModalDialog` 在一些现代浏览器中...
`window.open`的一个重要特性是,可以通过`window.opener`属性与打开新窗口的原始窗口(父窗口)进行通信。例如,如果在新窗口中输入数据并希望将其返回到父窗口,可以使用如下的代码: ```javascript window.opener...
- 在父窗口中,通过判断`window.showModalDialog`的返回值来决定是否刷新页面。 - 如果返回值为真,则执行`window.location.reload()`。 #### 注意事项 - **浏览器兼容性问题**:`window.showModalDialog`是IE...
在JavaScript编程中,`window.showModalDialog`是一个用于打开模态对话框的函数,它能够创建一个新的浏览器窗口或者在当前窗口内显示一个弹出层,阻止用户与父窗口的交互,直到用户关闭对话框为止。这个方法在创建...
2. **子窗口向父窗口传递值**:子窗口可以通过`window.returnValue`属性设置返回值,当子窗口关闭时,这个值会被返回给父窗口的`showModalDialog`调用。 3. **子窗口调用父窗口的方法**:子窗口可以获取对父窗口的...
- 当子窗口关闭时,其window.returnValue的值会被设置为父窗口中window.showModalDialog()方法调用的返回值。 - 在IE浏览器中,window.showModalDialog()方法支持得比较好,但在其它一些浏览器中可能不完全支持,...
这里的`retValue`是`window.showModalDialog()`返回的结果,根据业务逻辑判断是否需要刷新父窗口。 ### 总结 子窗口刷新父窗口是一个常见的需求,涉及到浏览器窗口间通信的技巧。无论是使用`window.open()`、`...
子窗口可以通过`window.opener`属性访问父窗口的对象和方法。但是,由于同源策略的限制,只有当子窗口与父窗口位于同一域时,才能修改父窗口的值。例如,子窗口可以这样设置父窗口的变量: ```javascript window....
4. **Window.postMessage()**:当`showModalDialog`打开的新窗口和父窗口在同一浏览器实例中时,可以利用`postMessage` API进行跨窗口通信。通过向新窗口发送消息,然后在新窗口中监听这些消息,实现跨域数据交换。 ...
在这个例子中,`dialogPage.jsp`是弹出的对话框页面,`window`表示对话框的父窗口,`"dialogWidth:500px;dialogHeight:400px;center:yes;status:no"`是一些配置参数,定义了对话框的大小、居中显示和不显示状态栏。 ...
`window.showModalDialog()`方法创建一个模态对话框,即用户必须先关闭子窗口才能与父窗口交互。此方法接受三个参数:URL(子窗口的地址)、对话框的初始值和对话框属性字符串。 在父窗口的HTML代码中,我们有一个`...
根据题目提供的信息,本文将详细介绍两种实现父窗口与子窗口交互的方法。 #### 一、通过 `window.open()` 方法实现交互 `window.open()` 是一种常见的创建新窗口的方式。通过这种方式可以灵活地控制新打开窗口的...
这种方法的关键在于利用`window.opener`属性,它指向打开当前窗口的窗口对象,因此我们可以在弹出的对话框中修改父窗口的属性,从而传递返回值。 尽管`showModalDialog`在某些场景下仍然有用,但由于它的兼容性和...
- 需要注意的是,`window.open()`并不会自动阻止用户与父窗口的交互,所以需要手动处理,例如通过监听新窗口的关闭事件并在事件处理程序中执行相应操作。 3. **处理返回值**: - `showModalDialog()`会返回一个值...
当你在模式对话框中设置 `window.returnValue`,然后调用 `window.close()` 关闭对话框时,这个值就会被返回给父窗口。在上面的示例中,`child.html` 中有两个按钮,分别设置 `window.returnValue` 为 `true` 或 `...
`showModalDialog()`可以返回一个值,这个值可以作为对话框关闭时的结果传递给父窗口。 总结一下,子窗口向父窗口传递值主要依赖于`window.parent`和`window.opener`这两个属性,它们允许子窗口访问并操作父窗口的...
可以使用 window.showModalDialog()方法传递参数,并调用父窗口的方法。 实践示例 可以使用以下代码来调用模态窗口并传递参数: parent.htm: ```html function show(){ alert("show"); } var arg = new ...
在Chrome中,此方法的表现与`window.open`类似,父窗口可以正常获取焦点,且`returnValue`通常返回`undefined`。在其他浏览器,如Firefox和Internet Explorer,`showModalDialog`通常能正确实现模态对话框的效果。 ...
1. **对话框返回值**:当对话框关闭时,可以通过`showModalDialog`调用返回一个值,这个值可以在父窗口中获取。例如,在子窗口中设置`window.returnValue`,然后在父窗口中通过`window.showModalDialog`的返回值来...