`
wangjie2013
  • 浏览: 173828 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

创建子窗口与子父窗口间通信

阅读更多

    Last modified:2013-10-10 17:44:34

    *********************************************

一,创建子窗口的方法:

    1,使用window.open()方法:

      window.open(URL,windowName,parameters);

    URL:要打开的连接

    WindowName:打开的子窗口的名字,如果为“_blank”效果和“a”标签里面target=”_blank”一样,打开一个新窗口

    Parameter:一些可定制的参数 (下面提供了DHTML文件可以查阅)

    e.g:

    打开一个 400 x 100 的干净的窗口:

    open('','_blank','width=400,height=100,menubar=no,toolbar=no,

    location=no,directories=no,status=no,scrollbars=yes,resizable=yes')

    也可以这样写: var newWindow = open('','_blank');//打开一个新的空白窗口

    参数说明如下:

    top=# 窗口顶部离开屏幕顶部的像素数

    left=# 窗口左端离开屏幕左端的像素数

    width=# 窗口的宽度

    height=# 窗口的高度

    menubar=... 窗口有没有菜单,取值yes或no

    toolbar=... 窗口有没有工具条,取值yes或no

    location=... 窗口有没有地址栏,取值yes或no

    directories=... 窗口有没有连接区,取值yes或no

    scrollbars=... 窗口有没有滚动条,取值yes或no

    status=... 窗口有没有状态栏,取值yes或no

    resizable=... 窗口给不给调整大小,取值yes或no

    使用window.showModalDialog()方法创建(showModelessDialog方法我试了一下就ie好使,google和firefox都不支持

    window.showModalDialog(sURL,vArguments,sFeatures);

    参数说明:

     sURL:必选参数,类型:字符串。

     用来指定对话框要显示的文档的URL。

     vArguments:可选参数,类型:变体。

     用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。

     sFeatures:选参数,类型:字符串。

     用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。

 

    dialogHeight:对话框高度不小于100px,IE4中dialogHeight和dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。

     dialogWidth: 对话框宽度。

     dialogLeft: 距离桌面左的距离。

     dialogTop: 离桌面上的距离。

     center: 窗口是否居中默认yes,但仍可以指定高度和宽度,取值范围{yes | no | 1 | 0 }。

     help: 是否显示帮助按钮默认yes,取值范围 {yes | no | 1 | 0 }。

    resizable: 是否可被改变大小。默认no,取值范围 {yes | no | 1 | 0 } [IE5+]。

    status: 是否显示状态栏。默认为yes[ Modeless]或no[Modal],取值范围{yes | no | 1 | 0 } [IE5+]。

     scroll:指明对话框是否显示滚动条。默认为yes,取值范围{ yes | no | 1 | 0 | on | off }。

    还有几个属性是用在HTA中的,在一般的网页中一般不使用。

     dialogHide:在打印或者打印预览时对话框是否隐藏。 默认为no,取值范围{ yes | no | 1 | 0 | on | off }。

     edge:指明对话框的边框样式。默认为raised,取值范围{ sunken | raised }。

     unadorned:默认为no,取值范围{ yes | no | 1 | 0 | on | off }。

     

    传入参数:

     要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象

e.g:

//打开一个对话框并将父类的应用传递给子窗体

window.showModalDialog(url,window.document);

 

 二,子父窗口间通信

    都可以使用window.opener引用到父窗口。

 如:

window.opener.location.reload(); //子窗口刷新父窗口

window.opener.location.href //获取父窗口href

window.opener.locaiton.pathname //获取父窗口路径名

            //刷新父页面 

      window.location.href=window.location.href ; //重新定位父页面

      window.location.reload;

 

    使用showModelDialog打开的窗口,可以在打开子窗口的时候将父类的引用通过参数传递过去。

子窗口通过 var parent=widnow.dialogArguments;获取父类的引用。

    e.g:

    //通过子窗口提交父窗口中的表单:form1,提交后执行查询操作
  var parent=window.dialogArguments;
  parent.document.form1.action="QueryInfor.jsp";
  parent.submit();

    //刷新父页面
  var parent=window.dialogArguments;
  parent.location.reload();

    //从子窗口传值到父窗口
    要实现在模态子窗口中传值到父窗口,需要使用window.returnValue完成

    实现方法如下:

    在子窗口中:

    //获取父窗口某字段值,对该值加一后返回父窗口

    var parent=window.dialogArguments;

    var x=parent.docuement.getElementById("age").value;

    x=x+1;

    //传回x值

    window.returnValue=x;

    在父窗口中:

    //获取来自子窗口的值

    var newWin=window.showModelDialog(url,window,'');

    if(newWin!=null)

  document.getElementById("age").value=newWin;

    e.g:在子窗口中设置父窗口的值

    子窗口设置父窗口的值使用方法如下:

    //子窗口中:

    var parent=window.dialogArguments;

    var x=parent.document.getElementById("age").value;

    x=x+1;

    //设置父窗口中age属性值

 

    parent.document.getElementById("age").value=x;

 

 记:为实现使用微博登录时弹出一个小窗口,使用showModelDialog打开一个子窗口的确挺好用,但是开发中发现有时会被浏览器拦截,不知道别人是怎么处理这问题的。纠结,最后没有采用弹窗方式而是采用了 window.location.href = URL;的方式。

 

0
0
分享到:
评论

相关推荐

    在固定位置创建子窗口,点击父窗口自动隐藏子窗口

    这个场景中的“在固定位置创建子窗口,点击父窗口自动隐藏子窗口”涉及到了窗口管理、事件处理以及窗口之间的通信等多方面的知识点。 1. **窗口管理**:窗口管理是操作系统或应用程序中用于控制窗口显示和操作的...

    Qt 子窗口父窗口切换,窗口间传值

    在Qt编程中,子窗口与父窗口之间的交互是常见的需求,包括窗口间的切换和数据传递。这涉及到Qt的窗口系统和信号与槽机制。本文将深入探讨如何在Qt环境中实现子窗口与父窗口的切换以及如何在窗口之间传递数据。 首先...

    子窗口与父窗口刷新

    在Java Web开发中,"子窗口与父窗口刷新"是一个常见的交互场景,特别是在构建多层级界面或模态对话框时。这里的"子窗口"通常指的是弹出的窗口、框架或者iframe,而"父窗口"则是打开子窗口的那个主页面。在这样的场景...

    C#中父窗口和子窗口之间实现控件互操作

    4. 子窗口向父窗口通信: - 回调方法:在子窗口中定义回调方法,当需要更新父窗口状态时,调用这个方法并传入必要的信息。 - 属性访问:子窗口可以公开一些属性,父窗口可以通过这些属性获取子窗口的状态。 5. 父...

    Qt6:子窗口向父窗口传值

    在Qt6框架中,子窗口向父窗口传递数据是一个常见的需求,这通常涉及到窗口间的通信。Qt6提供了多种方法来实现这种通信,包括信号与槽、共享数据对象、全局变量等。下面我们将深入探讨这些方法,并通过实例进行解析。...

    父窗口与子窗口间的调用

    #### 二、创建子窗口 在JavaScript中,可以通过`window.open()`方法来打开一个新的浏览器窗口作为子窗口。这个方法的基本语法如下: ```javascript window.open(url, name, features); ``` - `url`:指定子窗口...

    javascript 父窗口、子窗口传值问题

    1. **通过`window.open()`方法传参**:在创建子窗口时,可以通过URL查询字符串传递参数。例如: ```javascript var childWindow = window.open('child.html?param1=value1&param2=value2'); ``` 子窗口的...

    子窗口刷新父窗口总结

    子窗口刷新父窗口是一个常见的需求,涉及到浏览器窗口间通信的技巧。无论是使用`window.open()`、`window.showModalDialog()`还是jQuery,关键在于理解窗口对象的生命周期及相互之间的引用关系。通过适当的编程策略...

    Qt--子窗口向父窗口传值

    - **连接信号和槽**:在子窗口实例化后,使用`connect()`函数将子窗口的信号与父窗口的槽函数连接起来。 - **触发信号**:在子窗口中,当需要发送数据时,比如在按钮点击事件中,发射信号。 - **接收并处理数据**...

    Qt6:子窗口向父窗口传值(多控件版)

    在Qt6框架中,开发GUI应用程序时,我们经常会遇到子窗口与父窗口之间通信的需求,尤其是在涉及多个控件交互的场景。子窗口向父窗口传递数据是常见的操作,例如用户在子窗口中填写表单后,点击确认按钮,将表单数据...

    子窗口传值到父窗口.rar

    在Web开发中,有时我们需要在子窗口与父窗口之间传递数据。这通常发生在弹出窗口或者框架集等场景中,用户在子窗口进行操作后,需要将结果反馈给父窗口,以便更新父窗口的状态或展示相关信息。这个过程就称为“子...

    HTML 父窗口打开子窗口,并接收子窗口返回的值.zip

    在这个名为"HTML 父窗口打开子窗口,并接收子窗口返回的值"的示例中,我们主要探讨如何利用JavaScript在HTML页面中打开新的子窗口,并在子窗口与父窗口之间进行通信,传递数据。 首先,`index.html`很可能是主页面...

    MDI子窗口管理及子窗口创建

    1. **创建子窗口**:使用MFC的`CreateNewChild`函数或者直接调用`CMDIChildWnd`的构造函数来创建新的MDI子窗口。每个子窗口都会与一个特定的文档类关联,以便打开或创建相应的文档。 2. **激活子窗口**:MDI应用...

    C#父窗口子窗口示例

    在父窗口与子窗口之间进行通信,可以使用事件、属性或方法调用来实现。例如,子窗口可以触发一个事件,而父窗口作为事件处理程序,接收并响应这个事件。 **WindowsFormsApplication1:** 这个文件名可能是你的...

    子窗口向父窗口传递值

    本文将详细介绍如何在父窗口和子窗口之间传递数据,重点是“子窗口向父窗口传递值”。 首先,我们来看如何打开子窗口并传递数据。通常,我们可以使用`window.open()`函数来创建一个新的浏览器窗口。例如: ```...

    showModalDialog使用例子,父窗口向子窗口传递值,子窗口设置父窗口的值,子窗口关闭的时候返回值到父窗口

    但是,由于同源策略的限制,只有当子窗口与父窗口位于同一域时,才能修改父窗口的值。例如,子窗口可以这样设置父窗口的变量: ```javascript window.opener.someVariable = "新值"; ``` **子窗口关闭时返回值到父...

    jsp与javascript配合,父窗口与子窗口之间刷新

    一旦子窗口被创建,可以通过`window`对象的属性(如`opener`)与父窗口进行通信。例如,子窗口可以修改父窗口的变量或调用其方法,从而实现数据传递和页面刷新。 6. **刷新父窗口的方法**: - **使用`opener....

    C#中子窗口与父窗口通信

    这里我们讨论的场景是子窗口(Form2)与父窗口(Form1)之间的通信,其中子窗口向父窗口传递信息并更新父窗口的显示内容。下面将详细解释如何实现这一功能。 首先,我们需要创建两个窗体类:Form1和Form2。Form1...

    JavaScript操作iframe父窗口和子窗口例子

    - 频繁的父窗口与子窗口通信可能影响页面性能,因此应谨慎使用,并尽量优化通信过程。 - 为防止跨站脚本攻击(XSS),确保仅与可信源进行通信,并验证`event.origin`。 以上就是JavaScript操作iframe父窗口和子...

Global site tag (gtag.js) - Google Analytics