一、Javascript弹出子窗口:可以通过多种方式实现,下面介绍几种方法
1、通过window对象的open()方法,open()方法将会产生一个新的window窗口对象 //IE7里不支持
其用法为:
window.open(URL,windowName,parameters);
URL: 描述要打开的窗口的URL地址,如何为空则不打开任何网页;
windowName:描述被打开的窗口的民称,可以使用'_top'、'_blank'等内建名称,这里的名称跟<a href="..." target="...">里的target属性是一样的。
parameters:描述被打开的窗口的参数值,或者说是样貌,其包括窗口的各个属性值,及要传入的参数值。
例如:
打开一个 400 x 100 的干净的窗口:
open('','_blank','width=400,height=100,menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes')
参数说明如下:
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
2、在javascript中除了通过open()方法建立window对象实现弹出窗口外,还可以通过建立对话框的方式弹出窗口。
如:
alert(""); //弹出信息提示对话框
confirm(""); //弹出信息确认对话框
prompt(""); //具有交互性质的对话框
说名:
但是,上述实现的弹出窗口具有的功能较为单一,只能完成较为简单的功能。对于需要在对话框中显示多个数据信息,甚至是HTML控件就无能为力了。
3、使用模态对话框实现复杂的对话框需求
在javascript的内建方法中还有一类方法可以实现通过对话框显示HTML内容,也就是说可以通过创建对话框的方式来完成创建窗口对象所能完成的功能。包括创建模态对话框和非模态对话框两种。
实现方法为:
//创建模态你对话框
window.showModalDialog(sURL,vArguments,sFeatures)
//创建非模态对话框
window.showModelessDialog(sURL,vArguments,sFeatures)
其区别在于:
用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。 showModeDialog()则不然。
参数说明:
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个字符。也可以传递对象
例如:
var newWin=window.showModalDialog(url,window,'dialogHeight:500px, dialogLeft:100px, dialogTop:100px,
dialogWidth:300px, status:0, edge:sunken');
newWin.open();
与使用window.open()方法创建窗口相比,模态方法创建窗口的区别在于有模态方法创建的窗口后将不能操作父窗口.
二、子窗口与父窗口间通信
1、使用window.open()创建的窗口与父窗口通信可以在子窗口页面中通过window.opener来获取父窗口对象,获取之后子窗口便可以对父窗口执行刷新,传值等操作。
如:
window.opener.location.reload(); //子窗口刷新父窗口
window.opener.location.href //获取父窗口href
window.opener.locaiton.pathname //获取父窗口路径名
//刷新父页面
window.location.href=window.location.href ; //重新定位父页面
window.location.reload;
2、模态窗口与父窗口通信
通过使用showModelDialog(),及showModelessDialog()方法创建的子窗口想与父窗口通信时,不能通过window.opener来获取父窗口对象。要实现通信,必须在创建模态子窗口时向子窗口传入父窗口对象。
实现方式为,
在父窗口中:
var newWin=window.showModelDialog(url,window,'');
newWin.open();
此时参数window即是父窗口对象在子窗口中,需首先获取父窗口对象,然后才能使用父窗口对象。由于父窗口对象是在创建子窗口时通过传入参数的方式传入的,因此,在子窗口中也只能通过获取窗口参数的方式获取父窗口对象,获取方式如下:
var parent=widnow.dialogArguments;
变量parent便是父窗口对象。
例如:
//通过子窗口提交父窗口中的表单: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;
//在子窗口中设置父窗口的值
在子窗口中向父窗口中传入值似乎没有直接设置父窗口中的值来得明了。直接设置父窗口中元素的值显得要更灵活一些,不过具体使用哪种方法要根据实际情况和已有的实现方式而定,因为如果使用了不切实际的方法不仅降低开发效率,也降低了执行效率,往往也会造成不优雅的实现方式和代码风格。
子窗口设置父窗口的值使用方法如下:
子窗口中:
var parent=window.dialogArguments;
var x=parent.document.getElementById("age").value;
x=x+1;
//设置父窗口中age属性值
parent.document.getElementById("age").value=x;
三、补充:子窗体传值给父窗体可以通过函数传值
1.htm 父窗体代码
<script language="javascript" >
function toUrl() {
window.open("2.htm","_blank");
}
function getvalue(a) {
Form1.Text1.value=a;
}
</script>
<form id="form1">
<input id="text1" width=150px/>
<input id="button1" name="button1" onclick="toUrl()"/>
</form>
2.htm 子窗体
<script language="javascript" >
function goBack() {
window.opener.getvalue("123");
window.close();
}
</script>
<form id="form1">
<input id="button1" name="button1" onclick="goBack()"/>
</form>
子窗体父窗体之间传值通过摸态对话框,试验代码
1.htm 父窗体
<script language="javascript" >
function transVal() {
var newwin=window.showModalDialog("2.htm",window);
if(newwin!="[object]"){
document.getElementById("Text1").value=newwin;
}
}
</script>
<form id="form1">
<input id=text1 width=150px/>
<input type="button" id=button1 onclick="transVal()"/>
</form>
2.htm 子窗体
<script language="javascript" >
function reVal() {
var x="123";
window.returnValue=x;
window.close();
}
</script>
<form id="form1">
<input type="button" id=button1 onclick="reVal()"/>
</form>
- 浏览: 482736 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
疏影横斜:
新手是看不懂你实体类中的两个集合属性是哪里来的,代码并不全啊
easyUI-树形表格(TreeGrid)实现无限层级菜单 -
bkhacker:
...
easyUI-树形菜单(ComboTree) 无限层级树实现方式 -
avr_rong:
...
jquery自动补全例子
发表评论
-
自己写的 jquery 组件
2017-05-09 13:56 650有时候为了在项目,用js生成页面,页面中的一些常 ... -
jqGrid(数据表格)-在头部显示工具栏
2017-04-28 15:57 1288jqGrid表格原生态,像数据表格添加工具栏实现方 ... -
H5-杂记
2017-04-24 16:11 5411、默认打开手机数字输入键盘maxlength属性 ... -
获取验证码间隔一段时间在获取例子
2017-04-18 16:55 734<!DOCTYPE html PUBLIC &quo ... -
H5页面例子
2017-04-13 11:52 649<!DOCTYPE html> <ht ... -
DWZ-杂记
2016-08-31 16:34 486DWZ中文资料网: http://www.yq1 ... -
自定义标签
2016-03-08 19:33 697为了方便在页面显示格式化信息、做一些特殊处理.. ... -
ueditor-百度可视化编辑器简单使用方法
2016-03-04 14:58 26841、ueditor是百度可视化编辑工具 2、ued ... -
google浏览器,调试
2016-02-26 11:28 702让F12键打开浏览器调试界面。 1、请 ... -
highcharts-画复合图
2015-09-21 16:43 12081、demo1 复合指标图 <html> ... -
highcharts图标插件-杂记
2015-07-23 18:22 12081、highcharts做图形报表如何去掉图标右下角的hi ... -
easyUI-树形表格(TreeGrid)实现无限层级菜单
2015-07-21 16:36 16570对于easyUI实现一个树形表格,是一件很简单的 ... -
easyUI-树形菜单(ComboTree) 无限层级树实现方式
2015-07-21 16:01 31318对于easyUI实现一个树,是一件很简单的事情, ... -
解决ajax跨域请求问题
2015-06-01 12:38 1971参考地址:http://www.cnblogs.com/s ... -
EasyUI--combobox(下拉列表框)设值
2015-02-10 18:12 9120EasyUi combobox下拉列表相当于html的s ... -
jquery杂记
2015-01-15 15:43 7371、选择器例子 //单选按钮组,选择第一个 $(&qu ... -
get、post方法的长度限制
2014-11-06 11:11 11101、Get方法长度限制 Http Get方 ... -
jsp页面杂记
2014-08-04 09:23 7751、得到发布项目的基 ... -
easyUI--杂记
2014-08-01 15:13 1499在线演示地址:http://www.miniui.com/ ... -
JSP页面中的pageEncoding和contentType两种属性
2013-10-11 10:43 813本文转自:http://develop ...
相关推荐
### 弹出窗口大全(js)知识点详解 #### 一、基本概念 在Web开发中,JavaScript经常被用来创建各种交互式功能,其中弹出窗口是非常常见的一个应用场景。它主要用于显示额外的信息、表单或者对话框等,对于提高用户...
Web弹出窗口对话框是一种用于Web开发中常用的技术,主要用于在浏览器上展示额外的信息、执行任务或收集用户输入。这些弹出窗口可以被分为两种类型:模态对话框(Modal Dialog)和无模态对话框(Modeless Dialog)。...
总结,弹出窗口是Web开发中的重要组件,涉及HTML、CSS、JavaScript等多个技术领域。了解其工作原理、合理使用以及优化策略,有助于创建更高效、友好的用户界面。通过分析提供的文件,可以深入学习这些知识点,并实际...
在IT行业中,"点击按钮弹出窗口"是一个常见的交互设计技术,主要应用于...在Web开发中,前端框架如Bootstrap、Vue.js或React.js也提供了更便捷的方法来创建弹出窗口,这些框架通常封装了弹出框组件,简化了开发过程。
web 另类弹出窗口web 另类弹出窗口
在ASP.NET MVC中实现弹出窗口功能,能够增强用户体验,例如用于确认操作、显示详细信息或进行表单输入。以下是一些关于在ASP.NET MVC中实现弹出窗口的关键知识点: 1. **JavaScript与jQuery库**:在ASP.NET MVC中,...
在 Intraweb 应用程序开发中,"intraweb中弹出窗口源码" 是一个关键的概念,它涉及到在 Web 应用程序中模拟桌面应用程序的非模态窗体行为。Intraweb 是一个 Delphi 开发的组件库,用于构建服务器端的 Web 应用程序,...
在ASP.NET Web应用程序开发中,ASPx页面是基于.NET Framework的服务器控件,它提供了丰富的交互性...提供的文档"aspx页面弹出窗口代码大全.docx"应该包含了各种实现弹出窗口的示例代码和详细步骤,供开发者参考和学习。
在IT领域,尤其是在Web开发中,模态弹出窗口是一种常见的用户界面元素,它能够吸引用户的注意力并提供交互式操作。本资源提供的是一款在ASP.NET平台下非常好用且可自定义外观的模态弹出窗口源码。下面将详细介绍这款...
在网页设计中,"WEB窗口右下角弹出窗口提示效果"是一种常见的用户交互手段,用于向用户展示通知、消息或者重要信息。这种效果能够吸引用户的注意力,而不干扰他们当前的操作,因此在现代Web应用中非常流行。下面将...
"layer web弹出窗口代码" 提供了一种高效解决方案,它是一款优秀的JavaScript弹层组件。Layer以其轻量级、易用性和丰富的功能在开发者社区中广受欢迎。在本文中,我们将深入探讨layer的使用、功能以及如何通过它来...
在JS中,弹出窗口是实现用户交互的重要手段,它们可以是警告、确认、提示或者自定义对话框。下面将详细探讨JS中的各种弹出窗口及其使用方法。 1. `alert()` 函数: `alert()` 是JavaScript中最基础的弹出窗口,用于...
在网页设计和开发中,创建一个“完美弹出窗口”是一项常见的需求,它可以在不影响主页面的情况下提供额外的信息或功能。这个主题与JavaScript库JQuery密切相关,特别是针对“完美JQuery弹出窗口”的实现。JQuery是一...
在Web开发中,弹出窗口通常用于显示警告、确认信息或者进行用户交互。与传统的JavaScript alert、confirm和prompt不同,自定义的弹出窗口通过CSS控制样式,用JavaScript实现交互功能,提供了更高的定制性和用户体验...
本主题将深入探讨如何在.NET环境中实现弹出窗口选择值的功能,主要涉及Web Forms技术。 1. **Web Forms基础** Web Forms是.NET Framework中的一个关键组件,它允许开发者构建基于服务器的网页应用程序。Web Form...
在Web开发中,有时我们需要创建类似Windows应用程序那样的弹出窗口,提供用户交互或者展示特定信息。这个场景在网站中很常见,例如登录对话框、确认操作的提示、表单验证等。本文将深入探讨如何使用C#和VB.NET在ASP...
在IT行业中,弹出窗口是一种常见的用户交互设计,它能够吸引用户的注意力或者提供额外的信息。在Web开发领域,JavaScript(Js)是实现这种功能的主要工具。"百度的弹出窗口"可能指的是百度搜索引擎或其相关服务中...
"web前端打开弹出窗口在扩展屏幕显示(presentation谷歌版本)"这一技术主题,主要涉及使用谷歌浏览器支持的presentation API来实现这样的功能。这个API是HTML5的一个特性,允许网页内容在连接的外部显示器或投影...
默认的弹出窗口虽然实用,但可能无法满足所有需求,因此自定义弹出窗口显得尤为重要。自定义弹出窗口允许开发者根据应用的具体需求,定制内容、样式和行为,以提供更好的用户体验。 首先,我们需要理解ArcGIS API ...
在ASP.NET开发中,有时我们需要实现一个功能:在网页上弹出一个新的窗口,用户在弹出窗口中进行一些操作后,能将结果返回到主窗口,并自动刷新主窗口以显示最新的数据。这个问题涉及到多个技术点,包括JavaScript、...