1. 程式人生 > >[轉]JSP彈出視窗和模式對話方塊

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