[轉]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;
}