`
鬼大来晚了
  • 浏览: 67881 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Js实现弹窗返回值给父窗口

    博客分类:
  • JS
阅读更多
首先,Js提供了几种弹窗的方式:

window.open()用来打开一个新的窗口,拥有窗口的所有属性;
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有窗口的所有属性
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。
window.alert()通常用来显示信息。

1、window.open()用来弹出一个新的窗口,不能实现窗口之间的传值

用法:window.open(pageURL,name,parameters)
其中:
pageURL 为子窗口路径
name 为子窗口句柄
parameters 为窗口参数(各参数用逗号分隔)
例子:

<SCRIPT> 
window.open ('page.html','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no') 
//写成一行
</SCRIPT>


窗口的参数有很多:
参数 | 取值范围 | 说明
| |
alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后
alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上
depended | yes/no | 是否和父窗口同时关闭
directories | yes/no | Nav2和3的目录栏是否可见
height | pixel value | 窗口高度
hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键
innerHeight | pixel value | 窗口中文档的像素高度
innerWidth | pixel value | 窗口中文档的像素宽度
location | yes/no | 位置栏是否可见
menubar | yes/no | 菜单栏是否可见
outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度
outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度
resizable | yes/no | 窗口大小是否可调整
screenX | pixel value | 窗口距屏幕左边界的像素长度
screenY | pixel value | 窗口距屏幕上边界的像素长度
scrollbars | yes/no | 窗口是否可有滚动栏
titlebar | yes/no | 窗口题目栏是否可见
toolbar | yes/no | 窗口工具栏是否可见
Width | pixel value | 窗口的像素宽度
z-look | yes/no | 窗口被激活后是否浮在其它窗口之上

2、window.showModalDialog()用来打开一个模态对话框,能够在父窗口和子窗口之间传值
用法:
vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])

参数说明:
sURL--
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments--
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures--
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
1.dialogHeight :对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
2.dialogWidth: 对话框宽度。
3.dialogLeft: 离屏幕左的距离。
4.dialogTop: 离屏幕上的距离。
5.center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
6.help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
7.resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
8.status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
9.scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。
下面几个属性是用在HTA中的,在一般的网页中一般不使用。
10.dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。
11.edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
12.unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。

参数传递:
如果在父级页面中设置了传递的参数,要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符,也可以传递对象。

传递的参数在子页面中通过如下方式获得:
var obj=window.dialogArguments;
这样在子级页面中得到了父级页面传递的参数。
例子:

parent.jsp
<body>
<div>
<div id="test">Test</div>
<div><input type="text" id="hello" />
<input type="button" value="Select"  style='width:60px' onclick="showWin()"/>
</div>
</div>
</body>
<script type="text/javascript">
function showWin(){
	
	//新窗口的文档名称    
	var srcFile = "sub.jsp";     
	//高度,位置等
	var winFeatures = "dialogHeight:350x; dialogWidth:900px;dialogTop:500px;";  
	//把输入页面的reason input传给弹出窗口
	var obj = document.getElementById("hello"); 
	//将input作为对象传递给新窗口
	window.showModalDialog(srcFile, obj, winFeatures);   
	}

</script>

sub.jsp
<form>
<div>
<input type="button" value="1" onclick="getMsg(this.value)">
<input type="button" value="2" onclick="getMsg(this.value)">
</div>
</form>
</body>
<script type="text/javascript">
function getMsg(value){
     //得到父窗口传过来的值
	var obj=window.dialogArguments;
     //给父窗口的对象赋值
	obj.setAttribute("value",value);
	obj.setAttribute("disabled","disabled");	
	window.close();
	
}
</script>


3、window.showModelessDialog()的用法同window.showModalDialog()的用法相同,不再介绍。两者不同之处在于,模态对话框,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框。非模态对话框则不会强制此种特性,用户可以在当前对话框以及其他窗口间进行切换。
4、alert()
一般用于弹窗显示信息,使用简单,不再介绍。

分享到:
评论

相关推荐

    showModalDialog 弹出窗口关闭不刷新父窗口最终实现了

    - 要实现关闭弹出窗口后不刷新父窗口,关键在于控制`showModalDialog`的返回值。 - 可以通过传递特定的返回值来避免父窗口的刷新。 3. **具体实现步骤**: - **定义`OpenWindow`函数**: ```javascript ...

    js弹出一个新页面并获得弹出页面的值

    当使用`showModalDialog()`时,可以在新窗口返回数据给父窗口。在新窗口关闭时,它会返回一个值,这个值可以通过弹窗函数的返回值来接收。 ### 二、实现步骤详解 #### 2.1 父页面实现 父页面代码展示了如何使用`...

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

    在这个例子中,当子窗口关闭时,它可以通过返回值`k`给父窗口传递信息。如果子窗口的按钮`Button2`被点击执行`returnValue()`函数,返回的值会被赋给`txt2`的输入框,并通过`window.returnValue`返回给父窗口。 子...

    asp.net弹出窗口 返回值

    弹出窗口关闭后,父窗口的JavaScript函数`Pop`会接收到返回的值。此时,可以利用JavaScript对返回值进行处理,例如使用`split`函数来分割返回的字符串,并将分割后的各部分值分别赋值给对应的文本框。如本文中的`...

    ymPrompt的doHandler方法来实现获取子窗口返回值的方法

    ymPrompt 是一个JavaScript弹窗组件,它提供了丰富的功能来创建各种类型的对话框,如提示、确认、输入框等。在上述场景中,开发者遇到了如何从ymPrompt 弹出的子窗口获取返回值并根据该值决定是否刷新父窗口的问题。...

    页面弹窗实现用的showModalDialog方法

    以下是一个使用 `showModalDialog` 的简单实例,展示了如何从父窗口向对话框传递数据,并从对话框向父窗口返回数据: **parent.htm** ```html var obj = new Object(); obj.name = "51js"; var str = window....

    弹出框选择 返回父页面值

    要实现“返回父页面一个值”,我们通常会利用JavaScript及其相关库,如jQuery,来处理页面间的通信。以下是一些关键的技术点: 1. **局部存储**:可以使用`localStorage`或`sessionStorage`对象在浏览器的本地存储...

    js对话框传递参数

    - **`window.dialogArguments`**:这是另一个特殊属性,用于接收父窗口传递给子窗口的数据。 #### 三、通过`window.showModalDialog`传递参数 ##### 3.1 父页面向子页面传递数据 1. **创建对话框并传递参数**: ...

    javascript中showModalDialog子页面值赋给父页面

    在JavaScript编程中,`showModalDialog`是一个古老但仍然有用的函数,用于打开一个新的浏览器窗口或对话框,并与父页面进行交互。这个功能在处理用户输入、显示信息或进行特定操作时非常有用。在这个场景中,我们...

    JS模式窗口

    通过自定义`showModalDialog()`的返回值,可以实现与父窗口的通信。当用户在模态窗口中进行操作后,可以通过返回值将结果传回给调用它的页面,从而继续执行后续的程序逻辑。 总结,JS模式窗口是一个强大的功能,它...

    layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子

    在本文中,我们将探讨如何使用layer这个JavaScript弹层组件来实现一个登录弹框,并在用户登录成功后自动关闭弹框并调用父窗口中的特定方法。layer是一个功能丰富的Web弹层插件,它提供了多种类型的弹出层,如提示、...

    JS中showModalDialog 的使用解析.docx

    下面的代码示例展示了如何将父窗口对象传递给子窗口,并在子窗口中获取和操作父窗口的元素: ```html // 父窗口 用户名: 选择输入" /&gt; &lt;script type="text/javascript"&gt; var sURL = "showModalDialog2.html";...

    02._弹出窗口全解析

    通过`window.opener`属性,新窗口能够访问到打开它的父窗口,从而实现跨窗口的数据交换和控制。 #### 利用`iframe`和`div`增强弹窗功能 除了`window.open`方法外,还可以利用`iframe`和`div`等HTML元素来创建更...

    JavaScript代码收集

    此函数`okbtn_onclick`在用户点击按钮时调用,用于关闭当前窗口并将一个值(这里是空字符串)返回到调用该窗口的父窗口。这在多窗口操作或表单提交后需要反馈结果的情况下非常有用。 ### 3. 打开全屏窗口 ```...

    javascript网页开发-张孝祥.pdf

    尽管具体内容部分未能提供详细信息,但我们可以根据标题、描述以及标签“js”来推测这份文档可能涵盖的JavaScript基础知识与网页开发相关的重要知识点。 ### JavaScript简介 JavaScript是一种轻量级的解释型脚本...

    Js 获取和修改FCKeditor的值的代码

    - **注意**: `window.parent.InnerDialogLoaded()` 通常是在FCKeditor弹窗对话框内部使用的,确保能够正确访问父窗口。 3. **从框架页面的子框架中获得其它子框架的FCK编辑器实例**: ```javascript var Editor =...

    常用javascript代码.doc

    - `window.parent.close()`用于关闭父窗口。 6. **返回上一页**: ```html &lt;input onclick="javascript:history.go(-1)" type="button" value="返回" name="return"&gt; ``` **知识点解析**: - `history.go(-1)...

    layUI使用layer.open,在content打开数据表格,获取值并返回的方法

    在新窗口中,我们监听了表格的行单击事件,将选中的行ID保存到变量`conId`中,并通过`callbackData`函数将数据传递回父窗口。父窗口中的`yes`回调函数接收到这个值,并进行相应的处理。 总结一下,这个过程主要包括...

    怎样开启视窗来浏览其他网页

    总结来说,通过JavaScript的`window.open()`方法和`confirm()`函数,我们可以轻松地实现在用户点击按钮后打开新窗口浏览其他网页,或者弹出确认对话框进行进一步的确认操作。在编写代码时,务必注意浏览器兼容性和...

    JS判断鼠标从什么方向进入一个容器实例说明

    这对于实现如菜单展开、弹窗触发等交互效果至关重要。本文主要探讨了如何使用JavaScript来判断鼠标从什么方向进入了指定的容器,并提供了具体的实现示例。 首先,确定鼠标在屏幕上的位置通常使用事件对象中的...

Global site tag (gtag.js) - Google Analytics