`
fjguodong
  • 浏览: 39889 次
社区版块
存档分类
最新评论

JS子窗口向父窗口传值

阅读更多

JS子窗口向父窗口传值

作者:阿明

转自:http://blog.sina.com.cn/s/blog_4e25ddcd0100beo8.html

 

方法一:用模式窗口

returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口(模式窗口就是子窗口,打开后不能操作父窗口,只能等模式窗口关闭时才能操作)时,用于返回窗口的值,下面举个例子:
------------------------------------------------------------------------------
//father.html
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<script language="javascript">
function showmodal(){
 var ret = window.showModalDialog("child.html",null,"dialogWidth:350px;dialogHeight:350px;help:no;status:no");
 if (ret){alert('子窗口返回真!');
 }else{
  alert('子窗口返回假!');
 }
}
</script>
</HEAD>
<BODY>
<INPUT id=button1 type=button value=Button name=button1 onclick="showmodal();">
</BODY>
</HTML>
------------------------------------------------------------------------------
//child.html
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<script language="javascript">
function trans(tag){
   if (tag==0){
     window.returnValue=false;
   } else{
     window.returnValue =true;
   }
   window.close();
}
</script>
</HEAD>
<BODY>
<INPUT id=button1 type=button value="返回真" name=button1 onclick="trans(1)">
<INPUT id=button2 type=button value="返回假" name=button2 onclick="trans(0)">
</BODY>
</HTML>
-----------------------------------------------------------------------------
这样一来可以实现从模式窗口向父窗口传递值的作用,
这个returnValue除了可以是布尔值,整型值等以外还可以是个js数组,用来传递大量数据。

showModalDialog,是模态窗口,始终获得焦点,但弹出的窗体不能刷新,此弹出的窗口里操作button,要想不弹出新窗口,需在

弹出的窗口中在<head>和</head>之间加<base target="_self">。

 

方法二:用opener

这是一个父窗口~

<html>
<head>
<title>
</title>
<script language="javascript">
function win(){
   window.open("login.html",null,"height=150,width=200");
}

</script>
</head>
<table id="t1">
<tr><td id="dd">user</td></tr>
<tr><td id="bb">sex</td></tr>
</table>
<input type="button" value="提交" onclick="win()"/>
</html>

 

下面是一个子窗口

<html>
<head>
<title>
</title>
<script language="javascript">
function win(){

   window.opener.document.all.dd.innerText=document.getElementByIdx("user").value;
   window.opener.document.all.bb.innerText=document.getElementByIdx("sex").value;

   window.close();
}

</script>
</head>
<body>
user:
<input type="text" name="user"/>
<br>sex:
<input type="text" name="sex"/>
<br>
<input type="button" value="提交" onclick="win()"/>
</body>
</html>

 

PS:

 

两个方法都很容易理解,第一种方法中window.showModalDialog()方法和window.returnValue属性都没有

在W3School文档的window对象介绍中找到,但是有找到window.opener属性。

---------------------------------------------------------------------------------------------------------

定义和用法

opener 属性是一个可读可写的属性,可返回对创建该窗口的 Window 对象的引用。

opener 属性非常有用,创建的窗口可以引用创建它的窗口所定义的属性和函数。

语法

window.opener

提示和注释

注释:只有表示顶层窗口的 Window 对象的 operner 属性才有效,表示框架的 Window 对象的 operner 属性无效。

 

属性 描述 IE F O
opener 返回对创建此窗口的窗口的引用。 4 1 9

---------------------------------------------------------------------------------------------------------

考虑到兼容性,感觉用第二个方法比较好一点,但是这个方法对于含有框架页面的窗口是无效的。

而观察现在的很多网站的页面,这种真弹出式的窗口一般都不用了,而是用"DIV+CSS“实现的伪弹出窗口来替代这种窗口,因此上面的两种方式反而用的少了,只有一些老系统或者公司内部专用的系统可能还有这些用法。

分享到:
评论

相关推荐

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

    ### 子窗口向父窗口传值 1. **使用`window.opener`属性**:子窗口可以访问`window.opener`,它是打开它的父窗口的引用。通过这个引用,可以调用父窗口的函数或修改其变量: ```javascript // 子窗口 window....

    子窗口传值到父窗口.rar

    这个过程就称为“子窗口传值到父窗口”。在JavaScript中,我们可以利用多种方法实现这一功能。以下是一些常用的技术和步骤: 1. **使用window.opener属性**: - 子窗口可以通过`window.opener`属性访问父窗口的...

    js中用open方式打开新窗口向父窗口传值

    JS中用open方式打开新窗口向父窗口传值 在JavaScript中,使用`window.open()`方法可以打开一个新的浏览器窗口,这个方法可以实现子窗口向父窗口传值的操作。下面我们来详细解释这个过程。 首先,让我们回顾一下`...

    子父窗口传值

    - 事件触发:与子窗口向父窗口传值类似,父窗口也可以通过触发事件来传递数据给子窗口。 3. **FineUI中的子父窗口交互** - FineUI 提供了`OpenWindow`方法来创建子窗口,并且支持在打开子窗口时传递参数,这些...

    子父窗口传值动态添加行

    这个场景下,"子父窗口传值--动态添加行"涉及到的技术点主要是JavaScript中的跨窗口通信以及DOM操作,主要应用于Web应用的交互设计。 首先,让我们了解什么是子父窗口。在浏览器环境中,一个窗口可以打开另一个窗口...

    JavaScript实现弹出子窗口并传值给父窗口

    总结一下,JavaScript实现弹出子窗口并传值给父窗口的基本步骤包括: 1. 在父窗口中定义一个函数来打开子窗口,并指定回调函数接收返回值。 2. 创建子窗口,包含用户交互元素,提供一个功能用于获取用户输入并设置`...

    easyUi弹出window窗口传值与调用父页面的方法,子页面给父页面赋值

    首先,让我们理解标题中的“弹出window窗口传值”。在EasyUI中,创建一个弹出窗口通常涉及到以下步骤: 1. 创建一个HTML文件作为子页面,包含需要展示的数据和交互元素。 2. 在父页面中,通过`$.dialog`或`$.window...

    window.open父子窗口传值问题

    当我们谈论“window.open父子窗口传值问题”,我们指的是在父窗口通过`window.open`创建了一个子窗口,并需要在两者之间进行数据通信的情况。 首先,让我们了解一下`window.open`的基本语法: ```javascript var ...

    无刷新 子窗体传值父窗体

    在传统的方式中,如果想要从子窗口向父窗口传递数据,通常需要借助于JavaScript事件处理和DOM操作。 1. **JavaScript事件处理**: 当用户在子窗口执行某个操作后,例如点击按钮,可以触发一个JavaScript事件。通过...

    frameSet应用 子父窗口传值

    例如,假设有一个名为`leftFrame`的子窗口想要向名为`rightFrame`的父窗口发送消息: ```javascript // 在leftFrame中 window.parent.rightFrame.postMessage('这是从左窗体传来的信息', '*'); ``` 在`rightFrame`...

    js 主窗口与子窗口传值问题【摘抄】

    在JavaScript编程中,主窗口与子窗口之间的通信是一种常见的需求,特别是在构建多窗口应用程序或使用iframe时。本文将深入探讨如何在JavaScript中实现主窗口(parent window)与子窗口(child window)之间的值传递...

    .NET中利用js让子窗体向父页面传值的实现方法.docx

    在.NET开发中,有时我们需要在子窗口和父窗口之间进行数据交互,比如子窗口完成某些操作后,将结果返回给父窗口更新显示。本文将详细解释如何利用JavaScript在.NET环境中实现这一功能。 首先,让我们看看子页面的C#...

    iframe父向子传值实例.rar

    然而,由于浏览器的同源策略限制,`iframe`内的页面与包含它的父页面在不同源时,不能直接访问彼此的DOM或JavaScript变量,这就引出了"iframe父向子传值"的问题。 在标题"iframe父向值实例.rar"和描述中提到的解决...

    Js父窗口子窗口传对象

    js窗体间传值的小demo,这里是一个修改课程的例子,当然通过修改可以做成不过后台的修改,然后一次提交多条记录

    ShowModalDialog父窗体向子窗体传值

    总的来说,`showModalDialog`和`showModelessDialog`是JavaScript中用于创建弹出式对话框的两种方式,它们提供了在父窗口与子窗口之间传递数据的机制,同时也能够定制对话框的外观和行为。在实际应用中,根据需求...

    动态增删table以及后台传值和弹出窗口父子窗口传值

    在JavaScript中,可以使用window.open()函数创建新窗口,并通过window对象的属性(如opener或parent)来访问父窗口或子窗口的变量和方法。例如,父窗口可以将数据存储在一个全局变量中,子窗口通过引用父窗口的变量...

    js操作模态窗口及父子窗口间相互传值示例

    这里需要注意的是,在子窗口中设置的`window.returnValue`是用于向父窗口返回数据的。在父窗口中,通过判断`returnValue`是否为`null`来检查子窗口是否成功传值。如果子窗口传值成功,则将接收到的数据更新到父页面...

    JS弹出窗口的各种传值方法.pdf

    `setFather()`函数用于设置父窗口的值,而`returnValue()`和`relodeValue()`函数则分别用于返回一个值并关闭子窗口,以及关闭子窗口并要求刷新父窗口。 总结来说,这个示例展示了JavaScript中使用`window....

    子窗体传值给父窗体的select

    当用户在子窗口中完成选择后,希望这些选中的`checkbox`值能够回填到父窗口的`select`下拉框中。 首先,我们需要了解`select`和`checkbox`的基本概念。`select`元素在HTML中用于创建下拉列表,用户可以从中选择一个...

Global site tag (gtag.js) - Google Analytics