JS window.open()打開新窗口(非常詳細)


使用 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

下面示例演示了打開的窗口與原窗口之間的關系。
  1. win = window.open(); //打開新的空白窗口
  2. win.document.write ("<h1>這是新打開的窗口</h1>"); //在新窗口中輸出提示信息
  3. win.focus (); //讓原窗口獲取焦點
  4. win.opener.document.write ("<h1>這是原來窗口</h1>"); //在原窗口中輸出提示信息
  5. console.log(win.opener == window); //檢測window.opener屬性值

使用 window 的 close() 方法可以關閉一個窗口。例如,關閉一個新創建的 win 窗口可以使用下面的方法實現。
  1. win.close;
如果在打開窗口內部關閉自身窗口,則應該使用下面的方法。
  1. window.close;
使用 window.closed 屬性可以檢測當前窗口是否關閉,如果關閉則返回 true,否則返回 false。

示例2

下面示例演示如何自動彈出一個窗口,然后設置半秒鍾之后自動關閉該窗口,同時允許用戶單擊頁面超鏈接,更換彈出窗口內顯示的網頁 URL。
  1. var url = "c.biancheng.net"; //要打開的網頁地址
  2. var features = "height=500, width=800, top=100, left=100, toolbar=no, menubar=no,
  3. scrollbars=no,resizable=no, location=no, status=no"; //設置新窗口的特性
  4. //動態生成一個超鏈接
  5. document.write('<a href="c.biancheng.net" target="newW">切換到C語言中文網首頁</a>');
  6. var me = window.open(url, "newW", featrues); //打開新窗口
  7. setTimeout (function () { //定時器
  8. if (me.closed) {
  9. console.log("創建的窗口已經關閉。");
  10. } else {
  11. me.close();
  12. }
  13. }, 5000); //半秒鍾之后關閉該窗口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM