`
wangjie2013
  • 浏览: 172734 次
  • 性别: 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,而"父窗口"则是打开子窗口的那个主页面。在这样的场景...

    父窗口与子窗口间的调用

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

    Qt6:子窗口向父窗口传值

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

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

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

    子窗口刷新父窗口总结

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

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

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

    子窗口传值到父窗口.rar

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

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

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

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

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

    C#父窗口子窗口示例

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

    子窗口向父窗口传递值

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

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

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

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

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

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

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

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

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

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

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

    C#子窗口与父窗口的交互-使用委托与事件

    本文将深入探讨如何使用委托和事件在父窗口与子窗口之间进行有效通信。首先,我们需要理解委托和事件的基本概念。 **委托(Delegate)**是C#中的一个关键特性,它允许我们传递方法作为参数,实现回调机制。简单来说...

Global site tag (gtag.js) - Google Analytics