`

window.opener 的用法

    博客分类:
  • js
阅读更多
window.opener 的用法 window.opener 返回的是创建当前窗口的那个窗口的引用,比如点击了a.htm上的一个链接而打开了b.htm,然后我们打算在b.htm上输入一个值然后赋予a.htm上的一个id为“name”的textbox中,就可以写为: window.opener.document.getElementById("name").value = "输入的数据"; 对于javascript中的window.opener没有很好的理解。 为什么框架中不能使用,弹出窗口的父窗口不能在框架里面的某个页面呢?那怎样通过弹出窗口操作框架中的父窗口呢? opener.parent.frames['frameName'].document.all.input1.value 试试这个:) 转: 在一般的用法中,只是用来解决关闭窗口时不提示弹出窗口, 而对它更深层的了解一般比较少。其 实 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.opener用法和用途实例介绍

    下面我们将深入探讨 `window.opener` 的用法和应用场景。 ### `window.open()` 方法 `window.open()` 方法的语法如下: ```javascript window.open(url, name, features, replace); ``` - `url`:新窗口加载的 ...

    通过window.opener控制父窗体

    如果当前窗口是通过`window.open()`方法打开的,那么`window.opener`就指向了那个调用`window.open()`的窗口。这个属性为我们在子窗口中操作或访问父窗口提供了可能。 二、跨窗口通信 1. **从子窗口向父窗口传递...

    javascript window.opener的用法分析

    window.opener 的用法 window.opener 返回的是创建当前窗口的那个窗口的引用,比如点击了a.htm上的一个链接而打开了b.htm,然后我们打算在b.htm上输入一个值然后赋予a.htm上的一个id为“name”的textbox中,就可以写...

    window.showModalDialog以及window.open用法简介

    接下来,`window.showModalDialog`是Internet Explorer 4及以上版本引入的方法,用于创建一个模态对话框。这意味着用户必须先关闭对话框才能继续与父窗口交互。`showModalDialog`的语法为`vReturnValue = window....

    解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题

    在IE6中,使用 `window.opener = null; window.close();` 的组合,可以在打开一个新窗口后关闭原窗口,并且不会显示通常的"要关闭窗口吗?"的确认提示。这是因为IE6对这个操作的处理方式与其他浏览器不同,它允许在...

    js弹窗并返回值(window.open方式)

    1. 使用`window.open`打开的新窗口中设置一个`window.opener`属性,这样新窗口可以与打开它的窗口进行通信。 2. 在新窗口中处理用户交互后,使用`window.close`关闭窗口,并在关闭前将结果通过`window.opener`通知原...

    JS网页定时自动关闭-无浏览器提示

    为了解决这个问题,我们可以利用`window.opener`属性和`window.open`方法来规避这一行为。`window.opener`引用的是打开当前窗口的窗口对象,而`window.open`则用于打开新的窗口或标签页。 下面是一种实现网页自动...

    JavaScript 编写日历

    实现两个页面间的传值,开发者可能会利用URL查询参数、cookies或localStorage等方法,但在这个项目中,使用了"window.opener"属性。 `window.opener`是JavaScript的一个内置属性,它引用了创建当前窗口的窗口对象。...

    window.parent与window.openner区别介绍

    而`window.opener` 是针对使用`window.open()`方法或者`&lt;a&gt;`标签的`target="_blank"`属性打开的新窗口。当一个新窗口由已存在的窗口打开,新窗口会有一个`window.opener`属性,该属性引用的是创建它的原始窗口。在a....

    opener实例页面之间传递参数

    当子页面处理完数据并需要将结果返回给父页面时,可以使用`window.opener`的回调函数或者事件来实现。例如,我们可以定义一个函数在父页面中,然后在子页面调用这个函数并传递结果: ```javascript // 父页面 ...

    javascript经典特效---子窗口对父窗口的操作.rar

    2. 访问或修改父窗口的元素:通过`window.opener.document.getElementById`或`window.opener.document.querySelector`等方法,我们可以找到并操作父窗口中的HTML元素。例如,`window.opener.document.getElementById...

    js window.open iframe dialog

    例如,通过`window.opener`对象,子窗口可以访问到打开它的父窗口,而`iframe`内的脚本可以通过`parent`对象与父页面通信。 - 父窗口调用子窗口: ```javascript let newWindow = window.open('...'); newWindow....

    非模态对话框window.showModelessDialog简单示例

    例如,`window.opener.updateData(data)`可以调用主窗口上的`updateData`方法,传递对话框处理的结果。 在提供的文件`showModelessDialog`中,可能包含了实现这个过程的代码示例,包括HTML结构、CSS样式以及...

    windowOpen打开新窗口

    现在我们来深入探讨`window.open()` 的使用及其与父窗口通信的相关知识点。 首先,`window.open()` 函数的基本语法如下: ```javascript window.open(url, name, features); ``` - `url`: 这是新窗口要加载的页面...

    [removed].reload 刷新使用分析(去对话框)

    使用[removed].reload;刷新时,如果提交数据的动作,则会出现讨厌的对话框! 解决此问题,应该这样写: [removed].href=[removed].href; [removed].reload; 同理,如果是刷新父窗口,应该这样写: window.opener...

    被打开页面操作父页面上的控件

    如果子页面是父页面通过`window.open()`方法打开的,那么`window.opener`就是父页面的引用。 2. **跨窗口通信**: - 通过`window.opener`,子页面可以访问和修改父页面的全局变量、函数或DOM元素。例如,可以调用`...

    js opener的使用详解

    如果当前窗口是通过`window.open()`方法打开的,那么`window.opener`将指向那个发起打开动作的原始窗口。如果当前窗口不是通过`window.open()`打开的,或者已经被重新定向,`window.opener`的值将是`null`。 ### ...

    探索浏览器页面关闭window.close()的使用详解

    本文将深入探讨`window.close()`的使用方法和潜在问题。 **1. window.close()的使用语法** `window.close()`是一个简单的JavaScript函数,用于关闭当前浏览器窗口。它的基本语法如下: ```javascript window.close...

Global site tag (gtag.js) - Google Analytics