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="#" οnclick="openwin()">打开一个窗口</a> *使用的“#”是虚连接,若把“#”换成一个页面,则效果是:打开这个页面的同时弹出小窗口。 2、定时关闭弹出窗口 只需在窗口页面(注意是窗口页面)加入以下代码即可。 <script language="JavaScript" type="text/javascript"> function closeit() { setTimeout("self.close()",10000) } </script>其中,10000的单位是毫秒。再在<body>变成<body οnlοad="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" οnclick="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; }
转自:http://duqiangcise.javaeye.com/blog/288430