使用 window 物件的 open() 方法可以開啟一個新視窗。用法如下:
window.open (URL, name, features, replace)
引數列表如下:
- URL:可選字串,宣告在新視窗中顯示網頁文件的 URL。如果省略,或者為空,則新視窗就不會顯示任何文件。
- name:可選字串,宣告新視窗的名稱。這個名稱可以用作標記 <a> 和 <form> 的 target 目標值。如果該引數指定了一個已經存在的視窗,那麼 open() 方法就不再建立一個新視窗,而只是返回對指定視窗的引用,在這種情況下,features 引數將被忽略。
- features:可選字串,宣告瞭新視窗要顯示的標準瀏覽器的特徵,具體說明如下表所示。如果省略該引數,新視窗將具有所有標準特徵。
- replace:可選的布林值。規定了裝載到視窗的 URL 是在視窗的瀏覽歷史中建立一個新條目,還是替換瀏覽歷史中的當前條目。
該方法返回值為新建立的 window 物件,使用它可以引用新建立的視窗。
特徵 | 說明 |
---|---|
fullscreen = yes | no | 1 | 0 | 是否使用全屏模式顯示瀏覽器。預設是 no。處於全屏模式的視窗同時處於劇院模式 |
height = pixels | 視窗文件顯示區的高度。單位為畫素。 |
left = pixels | 視窗的 x 座標。單位為畫素。 |
location = yes | no | 1 | 0 | 是否顯示地址欄位。預設是 yes。 |
menubar = yes | no | 1 | 0 | 是否顯示選單欄。預設是 yes。 |
resizable = yes | no | 1 | 0 | 視窗是否可調節尺寸。預設是 yes。 |
scrollbars = yes | no | 1 | 0 | 是否顯示滾動條。預設是 yes。 |
status = yes | no | 1 | 0 | 是否新增狀態列。預設是 yes。 |
toolbar = yes | no | 1 | 0 | 是否顯示瀏覽器的工具欄。預設是 yes。 |
top = pixels | 視窗的 y 座標 |
width = pixels | 視窗的文件顯示區的寬度。單位為元素。 |
新建立的 window 物件擁有一個 opener 屬性,引用開啟它的原始物件。opener 只在彈出視窗的最外層 window 物件(top)中定義,而且指向呼叫 window.open() 方法的視窗或框架。
示例1
下面示例演示了開啟的視窗與原視窗之間的關係。
win = window.open(); //開啟新的空白視窗 win.document.write ("<h1>這是新開啟的視窗</h1>"); //在新視窗中輸出提示資訊 win.focus (); //讓原視窗獲取焦點 win.opener.document.write ("<h1>這是原來視窗</h1>"); //在原視窗中輸出提示資訊 console.log(win.opener == window); //檢測window.opener屬性值
使用 window 的 close() 方法可以關閉一個視窗。例如,關閉一個新建立的 win 視窗可以使用下面的方法實現。
win.close;
如果在開啟視窗內部關閉自身視窗,則應該使用下面的方法。
window.close;
示例2
下面示例演示如何自動彈出一個視窗,然後設定半秒鐘之後自動關閉該視窗,同時允許使用者單擊頁面超連結,更換彈出視窗內顯示的網頁 URL。
var url = "c.biancheng.net"; //要開啟的網頁地址 var features = "height=500, width=800, top=100, left=100, toolbar=no, menubar=no, scrollbars=no,resizable=no, location=no, status=no"; //設定新視窗的特性 //動態生成一個超連結 document.write('<a href="c.biancheng.net" target="newW">切換到C語言中文網首頁</a>'); var me = window.open(url, "newW", featrues); //開啟新視窗 setTimeout (function () { //定時器 if (me.closed) { console.log("建立的視窗已經關閉。"); } else { me.close(); } }, 5000); //半秒鐘之後關閉該視窗
示例3
<head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>開啟新視窗</title> <script type="text/javascript" > function OpenMyWinN(surl,w,h){ window.open(surl, "popUpMyWinN", "scrollbars=yes,resizable=yes,statebar=no,width="+w+",height="+h+",left=200, top=100"); } </script> </head> <body> <table width="98%" border="0" cellpadding="1" cellspacing="1" align="center" class="tbtitle" style="background:#cfcfcf;"> <tr> <td height="28" colspan="11" bgcolor="#EDF9D5" background='images/tbg.gif'> <table width="98%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="30%" style="padding-left:10px;"><strong>訂單列表:</strong> </td> <td width="45%" align="right" style="padding-top:4px"> <input type="button" name="ss13" value="未付款" sonClick="javascript:OpenMyWinN('#',680,450);" class='np coolbg'/> </td> </tr> </table> </td> </tr> </table> <a href="javascript:OpenMyWinN('shops_operations_cart.php?oid=S-P1586654454RN545',680,450);" >[詳情]</a>
效果如下圖:
參考文件:使用 window 物件的 open() 方法可以開啟一個新視窗
日期:2020.1.22 lzb