`

JSP弹出窗口和模式对话框参数(转)

阅读更多

JSP 弹出窗口

一、window.open() 基础知识 


     1、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+
     2、基本语法:window.open(pageURL,name,parameters)
                  其中:
                            pageURL 为子窗口路径
                            name 为子窗口句柄
                            parameters 为窗口参数(各参数用逗号分隔)
     3、简单示例:

<script language="javascript" type="text/javascript"> 
<!-- 
window.open ('page.aspx','newwindow','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no') 
--> 
</script> 

   

    脚本运行后,page.aspx将在新窗体newwindow中打开,宽为100,高为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。其中<!-- 和 -->是对一些版本低的浏览器起作用,在这些低版本浏览器中不会将标签中的代码作为文本显示出来,要养成这个好习惯。

 

4、可用的parameters:其中yes/no也可使用1/0;pixel value为具体的数值,单位象素。

 

 参数    取值范围 说明 
 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  窗口是否可有滚动栏
 status  yes/no  是否显示状态栏内的信息
 titlebar  yes/no  窗口题目栏是否可见
 toolbar  yes/no  窗口工具栏是否可见
 Width  pixel value  窗口的像素宽度
 z-look   yes/no  窗口被激活后是否浮在其它窗口之上

 
           

  二、window.open() 应用与技巧

 1.用一个连接调用

<script language="javascript" type="text/javascript"> 
<!-- 
function openwin() 
{ 
window.open ("page.aspx", "newwindow", "height=100, width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") 
} 
--> 
    </script> 

 

  <a href="#" onclick="openwin()">打开一个窗口</a>
  *使用的“#”是虚连接,若把“#”换成一个页面,则效果是:打开这个页面的同时弹出小窗口。

    2、定时关闭弹出窗口 
    只需在窗口页面(注意是窗口页面)加入以下代码即可。 

    <script language="JavaScript" type="text/javascript"> 
function closeit() 
{ 
setTimeout("self.close()",10000) 
} 
    </script>

 

  其中,10000的单位是毫秒。再在<body>变成<body onload="closeit()">即可。

    3、主窗口和弹出窗口处于一个页面 
    一般,主窗口和弹出窗口都是分别为两个页面,可否都处在一个页面呢?当然是可以的。

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>无标题页</title> 
    <script language="JavaScript" type="text/javascript"> 
function openwin() 
{ 
OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no,scrollbars="+scroll+",menubar=no"); 
OpenWindow.document.write("<BODY BGCOLOR=#ffffff>") 
OpenWindow.document.write("<h1>Hello!</h1>") 
OpenWindow.document.write("New window opened!") 
OpenWindow.document.write("</BODY>") 
OpenWindow.document.write("</HTML>") 
OpenWindow.document.close() 
} 
    </script> 

</head> 
<body> 
    <input type="button" onclick="openwin()" value="打开窗口" /> 
</body> 
</html> 

 

4、经常的应用

//========================================================================== 
// 
// 代码描述:打开一个新的没有状态栏、工具栏、菜单栏、定位栏, 
//            不能改变大小,且位置居中的新窗口 
// 
// 传入参数:pageURL - 传递链接 
//            innerWidth - 传递需要打开新窗口的宽度 
//            innerHeight - 传递需要打开新窗口的高度 
// 
// 返回参数:无 
// 
// 
//========================================================================== 
function g_OpenWindow(pageURL, innerWidth, innerHeight) 
{    
    var ScreenWidth = screen.availWidth 
    var ScreenHeight = screen.availHeight 
    var StartX = (ScreenWidth - innerWidth) / 2 
    var StartY = (ScreenHeight - innerHeight) / 2 
    window.open(pageURL, '', 'left='+ StartX + ', top='+ StartY + ', Width=' + innerWidth +', height=' + innerHeight + ', resizable=no, scrollbars=yes, status=no, toolbar=no, menubar=no, location=no') 
} 

 

 三、模式窗口函数弹出窗口

//========================================================================================== 
// 
// 代码描述:打开模式窗口函数,打开一个模式窗口不包含菜单、状态条、工具条、定位栏 
// 
// 传入参数:pageURL - 传递链接 
//            innerWidth - 传递需要打开新窗口的宽度 
//            innerHeight - 传递需要打开新窗口的高度 
// 返回参数:无 
// 
// 
//========================================================================================== 
function g_OpenModalWindow(pageURL, innerWidth, innerHeight) 
{ 
    window.showModalDialog(pageURL, null, 'dialogWidth:' + innerWidth + 'px;dialogHeight:' + innerHeight + 'px;help:no;unadorned:no;resizable:no;status:no') 
} 

//========================================================================================== 
// 
// 代码描述:打开模式窗口函数,打开一个模式窗口不包含菜单、状态条、工具条、定位栏 ,并且返回值 
// 
// 传入参数:pageURL - 传递链接 
//            innerWidth - 传递需要打开新窗口的宽度 
//            innerHeight - 传递需要打开新窗口的高度 
// 返回参数:模式窗体返回的returnValue 
// 
// 
//========================================================================================== 
function g_OpenreturnWindow(pageURL, innerWidth, innerHeight) 
{ 
    var returnv; 
    returnv=window.showModalDialog(pageURL, null, 'dialogWidth:' + innerWidth + 'px;dialogHeight:' + innerHeight + 'px;help:no;unadorned:no;resizable:no;status:no') 
    return returnv; 
} 

//========================================================================================== 
// 
// 代码描述:打开模式窗口函数,打开一个模式窗口不包含菜单、状态条、工具条、定位栏 
// 
// 传入参数:pageURL - 传递链接 
//            innerWidth - 传递需要打开新窗口的宽度 
//            innerHeight - 传递需要打开新窗口的高度 
// 返回参数:无 
// 
// 
//========================================================================================== 
function g_OpenReturnModalWindow(pageURL, innerWidth, innerHeight) 
{ 
    window.showModalDialog(pageURL, null, 'dialogWidth:' + innerWidth + 'px;dialogHeight:' + innerHeight + 'px;help:no;unadorned:no;resizable:no;status:no'); 
    return false; 
}

 

 四、模式对话框父子窗口间的通信

 

   下面主要对防止模式对话框弹出新子窗口,和父子窗口间的通信进行介绍。

    比如,如下代码是子窗口(模式窗口)jsp中的js代码。

function test() { 
var flag = document.getElementById("key"); 
if (flag.value == "true") { 
     window.returnValue = true; 
window.close(); } 
} 

"key"是jsp页面中某标签的id,比如其可以是<s:hidden name="key" value="value1">,其中value1是action中的某个返回属性,当value1=true时,子窗口就向父窗口返回true并关闭该子窗口(调用window.close();). 
  上面光给出了子窗口中的js代码,下面给出子窗口中的jsp代码,比如jsp代码为: 
<s:form action="test" target="heihei"> 
<s:hidden name="key" value="%{value1}"/> 
.............................. 
</s:form> 
<script language="javascript" type="text/javascript"> 
<!-- 
    window.name='heihei'; 
test(); 
//--> 
</script> 

 

     上面<script language="javascript" type="text/javascript"></script> 中的window.name=“heihei”;就是防止子窗口重新再另外打开一个子窗口的。并且window.name="heihei"中的"heihei"要和表单<s:form action="test" target="heihei">中的target的值(”heihei“)相同,简而言之就是,每次打开的子窗口都是当前窗口,即是在target指定的窗口中打开。要实现在模态子窗口中传值到父窗口,需要使用window.returnValue完成。
     在父窗口中就可以得到该子窗口返回的值,其得到方式为: var newWin=window.showModelDialog(url,window,'');当上面的子窗口返回为ture是,父窗口中的值newWin的值就为true否则为false。函数window.showModelDialog(url,window,'')中的第一个参数可以是一个action(比如:test.action或"test.shtml?page=1"),也可以是一个具体的jsp(test.jsp)页面。

 

   1. 在子窗口中:

//获取父窗口某字段值,对该值加一后返回父窗口 
var parent=window.dialogArguments; 
var x=parent.docuement.getElementById("age").value; 
x=x+1; 

//传回x值 
window.returnValue=x; 

   2.在父窗口中: 

//获取来自子窗口的值,并把其赋给某个对象 
var newWin=window.showModelDialog(url,window,''); 
if(newWin!=null) 
document.getElementById("age").value=newWin; 
   3.子窗口设置父窗口的值使用方法如下: 

     子窗口中: 
//age是父窗口中的某标签对象的id 

var parent=window.dialogArguments; 
var x=parent.document.getElementById("age").value; 
x=x+1; 
//设置父窗口中age属性值 
parent.document.getElementById("age").value=x; 

 

分享到:
评论

相关推荐

    JSP弹出窗口和模式对话框.doc

    ### JSP弹出窗口和模式对话框:深入解析与实用技巧 #### 一、JSP弹出窗口:window.open()的全面指南 JSP(JavaServer Pages)是一种用于生成动态网页的技术,它允许开发者在服务器端执行Java代码,然后将结果发送...

    window.showModalDialog模式对话框和 window.open的区别

    在Web开发中,创建弹出窗口是常见的交互方式,用于显示一些额外的信息或者进行特定的操作。`window.showModalDialog` 和 `window.open` 都是JavaScript提供的两种打开新窗口的方法,但它们在功能和使用场景上有着...

    Js 弹出框口并返回值的两种常用方法

    参数说明: url:弹出页面地址 agrs:主窗口传给对话框的参数,可以是任意类型(数组也可以) dialogattrs:弹出窗口的样式参数 模式对话框用法: 主窗口:var value =window.showModalDialog(‘test.jsp’,strs,’...

    类似51job 职能搜索弹出框,已解决

    在这个例子中,`div`被用作弹出窗口的基础结构。当用户触发某个事件(如点击按钮)时,这个`div`会通过JavaScript显示出来,提供搜索功能。 JavaScript库如jQuery在这里扮演了重要角色,它简化了DOM操作和事件处理...

    解决window.showModalDialog跨域返回值

    // 弹出模式窗口,集成页面传入参数 orderTag var callFlag = window.showModalDialog( encodeURI("../openPage.jsp?orderTag=2"), window, "scroll:no;resizable:yes;Minimize:no;Maximize:yes;dialogHeight:...

    editplus 代码编辑器html c++ jsp css

    ①、选择“查找”菜单的“替换”命令,弹出文本替换对话框。选中“正则表达式”复选框,表明我们要在查找、替换中使用正则表达式。然后,选中“替换范围”中的“当前文件”,表明对当前文件操作。 ②、单击“查找...

    潍坊学院成人教育Java-Web程序设计B卷试卷及参考答案.doc

    7. JavaScript方法:`alert()`用于显示警告对话框,`confirm()`显示确认对话框,`prompt()`显示输入对话框,`createPopup()`在某些浏览器中用于创建弹出窗口,但不是标准方法。 8. JSP表达式语言(EL):EL的语法是...

    J2EE复习题1

    12. JavaScript确认对话框:在HTML中,实现点击超链接弹出确认对话框,询问用户是否删除,应该使用`onClick`事件和`confirm()`函数,如`&lt;a href="book.jsp?bid=1" onClick="return confirm('你真的要删除吗?');"&gt;...

    jqgrid行编辑+动态为其他列赋值

    而弹出式编辑则会在一个新的窗口或模态对话框中显示完整的表单,用于编辑选定行的所有数据。 要实现动态为其他列赋值,我们可以通过监听文本域和输入框的`blur`事件来触发。当用户在某个单元格中输入数据后失去焦点...

    2021-2022计算机二级等级考试试题及答案No.18740.docx

    15. 非模态对话框:非模态对话框允许用户同时与对话框和其他窗口交互,不需要等待对话框关闭。 16. JSP变量作用域:在之间的声明的变量只在当前JSP标签内有效,而不是整个页面。 17. Access数据库与表的关系:一个...

    idea配置tomcat-idea-tomcat-master.zip

    选择"File" -&gt; "New" -&gt; "Project",在弹出的对话框中选择"Web"类别,然后选择"Dynamic Web Project"。输入项目名称,选择存放位置,点击"Next",然后"Finish"。 接下来,添加Tomcat服务器。在IDEA的左侧导航栏,...

    400个DreamWeaver插件

    如果做很多弹出窗口的话,这个插件比DW自带的open browser window方便一些 mxp/一些Flash Button,一共7款 mxp/Winamp和Dreamweaver都是软件中的精品,有了这个插件,你可以方便的在DW中控制Winamp。边工作,边听...

    java源码包---java 源码 大量 实例

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    eclipse 使用技巧归总

    - 在弹出的窗口中找到 `Displayed tab width` 选项,将其设为所需的宽度(例如 4),同时勾选 `Insert spaces for tabs` 选项。 - 点击 `OK` 保存设置。这样,在编辑 HTML 文件时,按 Tab 键将会插入相应数量的...

    ARCH4系统开发指南

    2.31 新增成功/失败弹出对话框而不离开窗口 78 2.32 权限检查调用点 79 2.32.1 为查询方法增加权限控制(PowerUtils.addPower()) 79 2.32.2 为按钮增加权限控制(在平台子系统配置方法任务关联) 81 2.33 保存成功...

    Java开发技术大全 电子版

    14.13.1增加弹出式菜单558 14.13.2“退出”菜单的响应代码559 14.13.3覆盖JFrame的processWindowEvent方法560 14.13.4监听JTextArea的DocumentEvent事件560 14.13.5“另存为…”菜单的响应代码561 14.13.6...

    课题-jQuery-LigerUI-使用教程入门篇.doc

    7. **窗口组件**:Dialog(对话框)、MessageBox(消息框)、Window(窗口)用于弹出式操作和信息提示。 在实际使用中,LigerUI遵循插件化的开发模式,每个控件都尽可能独立,同时支持拓展和组合,以实现复杂功能。...

    Elispe和它的插件MyEclipse的使用窍门和技巧

    2. **选择工作集类型**:在弹出的对话框中选择“工作集”选项。 3. **设置工作集名称并分配项目**:设置一个易于识别的工作集名称,并将需要包含在这个工作集中的项目添加进去。 **导航历史记录** Eclipse允许用户...

    2021-2022计算机二级等级考试试题及答案No.18001.docx

    - **知识点**: 数据库查询类型包括选择查询、交叉表查询、操作查询和参数查询。 - **详细解释**: - 选择查询: 从一个或多个表中选取满足条件的数据行。 - 交叉表查询: 用于创建类似电子表格的格式,它将数据组织...

Global site tag (gtag.js) - Google Analytics