JS window.open()打開(kāi)新窗口(非常詳細(xì))
使用 window 對(duì)象的 open() 方法可以打開(kāi)一個(gè)新窗口。用法如下:
window.open (URL, name, features, replace)
參數(shù)列表如下:- URL:可選字符串,聲明在新窗口中顯示網(wǎng)頁(yè)文檔的 URL。如果省略,或者為空,則新窗口就不會(huì)顯示任何文檔。
- name:可選字符串,聲明新窗口的名稱(chēng)。這個(gè)名稱(chēng)可以用作標(biāo)記 <a> 和 <form> 的 target 目標(biāo)值。如果該參數(shù)指定了一個(gè)已經(jīng)存在的窗口,那么 open() 方法就不再創(chuàng)建一個(gè)新窗口,而只是返回對(duì)指定窗口的引用,在這種情況下,features 參數(shù)將被忽略。
- features:可選字符串,聲明了新窗口要顯示的標(biāo)準(zhǔn)瀏覽器的特征,具體說(shuō)明如下表所示。如果省略該參數(shù),新窗口將具有所有標(biāo)準(zhǔn)特征。
- replace:可選的布爾值。規(guī)定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創(chuàng)建一個(gè)新條目,還是替換瀏覽歷史中的當(dāng)前條目。
該方法返回值為新創(chuàng)建的 window 對(duì)象,使用它可以引用新創(chuàng)建的窗口。
| 特征 | 說(shuō)明 |
|---|---|
| fullscreen = yes | no | 1 | 0 | 是否使用全屏模式顯示瀏覽器。默認(rèn)是 no。處于全屏模式的窗口同時(shí)處于劇院模式 |
| height = pixels | 窗口文檔顯示區(qū)的高度。單位為像素。 |
| left = pixels | 窗口的 x 坐標(biāo)。單位為像素。 |
| location = yes | no | 1 | 0 | 是否顯示地址字段。默認(rèn)是 yes。 |
| menubar = yes | no | 1 | 0 | 是否顯示菜單欄。默認(rèn)是 yes。 |
| resizable = yes | no | 1 | 0 | 窗口是否可調(diào)節(jié)尺寸。默認(rèn)是 yes。 |
| scrollbars = yes | no | 1 | 0 | 是否顯示滾動(dòng)條。默認(rèn)是 yes。 |
| status = yes | no | 1 | 0 | 是否添加狀態(tài)欄。默認(rèn)是 yes。 |
| toolbar = yes | no | 1 | 0 | 是否顯示瀏覽器的工具欄。默認(rèn)是 yes。 |
| top = pixels | 窗口的 y 坐標(biāo) |
| width = pixels | 窗口的文檔顯示區(qū)的寬度。單位為元素。 |
新創(chuàng)建的 window 對(duì)象擁有一個(gè) opener 屬性,引用打開(kāi)它的原始對(duì)象。opener 只在彈出窗口的最外層 window 對(duì)象(top)中定義,而且指向調(diào)用 window.open() 方法的窗口或框架。
示例1
下面示例演示了打開(kāi)的窗口與原窗口之間的關(guān)系。- win = window.open(); //打開(kāi)新的空白窗口
- win.document.write ("<h1>這是新打開(kāi)的窗口</h1>"); //在新窗口中輸出提示信息
- win.focus (); //讓原窗口獲取焦點(diǎn)
- win.opener.document.write ("<h1>這是原來(lái)窗口</h1>"); //在原窗口中輸出提示信息
- console.log(win.opener == window); //檢測(cè)window.opener屬性值
使用 window 的 close() 方法可以關(guān)閉一個(gè)窗口。例如,關(guān)閉一個(gè)新創(chuàng)建的 win 窗口可以使用下面的方法實(shí)現(xiàn)。
- win.close;
- window.close;
示例2
下面示例演示如何自動(dòng)彈出一個(gè)窗口,然后設(shè)置半秒鐘之后自動(dòng)關(guān)閉該窗口,同時(shí)允許用戶(hù)單擊頁(yè)面超鏈接,更換彈出窗口內(nèi)顯示的網(wǎng)頁(yè) URL。- var url = "c.biancheng.net"; //要打開(kāi)的網(wǎng)頁(yè)地址
- var features = "height=500, width=800, top=100, left=100, toolbar=no, menubar=no,
- scrollbars=no,resizable=no, location=no, status=no"; //設(shè)置新窗口的特性
- //動(dòng)態(tài)生成一個(gè)超鏈接
- document.write('<a href="c.biancheng.net" target="newW">切換到C語(yǔ)言中文網(wǎng)首頁(yè)</a>');
- var me = window.open(url, "newW", featrues); //打開(kāi)新窗口
- setTimeout (function () { //定時(shí)器
- if (me.closed) {
- console.log("創(chuàng)建的窗口已經(jīng)關(guān)閉。");
- } else {
- me.close();
- }
- }, 5000); //半秒鐘之后關(guān)閉該窗口

浙公網(wǎng)安備 33010602011771號(hào)