天天看點

window.open()了解以及如何用window.open()實作視窗關閉

   1.window.open的4個參數

 window.open(pageURL,name,parameters,bReplace)

其中:

pageURL 為子視窗路徑 ,寫的時候要注意絕對路徑要加http://,相對路徑要加../

name 為子視窗句柄 (這是實作關閉的關鍵,詳細看之後)

parameters 為視窗參數(各參數用逗号分隔) :

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 | 視窗是否可有卷軸框

titlebar | yes/no | 視窗題目欄是否可見

toolbar | yes/no | 視窗工具欄是否可見

Width | pixel value | 視窗的像素寬度

z-look | yes/no | 視窗被激活後是否浮在其它視窗之上

補充:top:為距離窗體上方的距離

          left:為距離窗體左側的距離

          location:當用IE9或IE8的時候新打開一個窗體要用location=no,這樣會新彈出一個視窗而不是在标簽裡。

bReplace 是true/false,用來指定是否在替換目前浏覽器曆史中的位址。

2. window.open實作關閉其它視窗的用法

關鍵:name ,location

原理:利用已經打開的窗體的視窗句柄,在新打開的窗體将其窗體句柄與已經打開的一緻,進而沖掉舊窗體,實作關閉。

例子:

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <script type="text/javascript">

        function openBaidu() {

            // 打開百度

            window.open("http://www.baidu.com", "baidu", "location=no", false);

        }

        function closeBaidu() {

            // 關閉百度

            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);

            obj.close();

        }

    </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <input type="button" value="open" οnclick="openBaidu();" />

    <input type="button" value="close" οnclick="closeBaidu();" />

    </div>

    </form>

</body>

</html>

說明:

1.當點選open按鈕時會打開百度,其視窗句柄名為baidu

2.點選close按鈕的時候會新打開一個窗體,視窗句柄名字仍為baidu

3.在IE8,9下需設定localtion,top和left為讓第二次打開的窗體不被看到,可以沒有

4.obj.close(); 可以讓新打開的窗體關閉,進而兩個畫面全關閉。可以沒有。

5.在試驗前需設定 Internet選項->安全->受信任的站點->自定義級别->允許腳本初始化的視窗不受位置和大小限制

6.設定 Internet選項->進階->允許腳本調試

7.當打開别的伺服器的窗體,再在本地實作關閉的時候,雖然采用同樣的句柄名,但無法實作關閉,而且會報腳本錯,這個自己仍在調查.....。

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <script type="text/javascript">

        function openBaidu() {

            // 打開百度

            window.open("http://www.baidu.com", "baidu", "location=no", false);

        }

        function closeBaidu() {

            // 關閉百度

            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);

            obj.close();

        }

    </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <input type="button" value="open" οnclick="openBaidu();" />

    <input type="button" value="close" οnclick="closeBaidu();" />

    </div>

    </form>

</body>

</html><html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <script type="text/javascript">

        function openBaidu() {

            // 打開百度

            window.open("http://www.baidu.com", "baidu", "location=no", false);

        }

        function closeBaidu() {

            // 關閉百度

            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);

            obj.close();

        }

    </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <input type="button" value="open" οnclick="openBaidu();" />

    <input type="button" value="close" οnclick="closeBaidu();" />

    </div>

    </form>

</body>

</html><html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <script type="text/javascript">

        function openBaidu() {

            // 打開百度

            window.open("http://www.baidu.com", "baidu", "location=no", false);

        }

        function closeBaidu() {

            // 關閉百度

            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);

            obj.close();

        }

    </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <input type="button" value="open" οnclick="openBaidu();" />

    <input type="button" value="close" οnclick="closeBaidu();" />

    </div>

    </form>

</body>

</html><html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <script type="text/javascript">

        function openBaidu() {

            // 打開百度

            window.open("http://www.baidu.com", "baidu", "location=no", false);

        }

        function closeBaidu() {

            // 關閉百度

            var obj = window.open("about:blank", "baidu", "location=no,top=10000;left=10000",false);

            obj.close();

        }

    </script>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <input type="button" value="open" οnclick="openBaidu();" />

    <input type="button" value="close" οnclick="closeBaidu();" />

    </div>

    </form>

</body>

</html>

繼續閱讀