JS window.open()屬性


一. Window 對象

Window 對象是 JavaScript 層級中的頂層對象。

Window 對象代表一個瀏覽器窗口或一個框架。

Window 對象會在 <body> 或 <frameset> 每次出現時被自動創建。

 

二.

open() 方法用於打開一個新的瀏覽器窗口或查找一個已命名的窗口。

 

三.

window.open(URL,name,features,replace)

參數 描述
URL 一個可選的字符串,聲明了要在新窗口中顯示的文檔的 URL。如果省略了這個參數,或者它的值是空字符串,那么新窗口就不會顯示任何文檔。
name 一個可選的字符串,該字符串是一個由逗號分隔的特征列表,其中包括數字、字母和下划線,該字符聲明了新窗口的名稱。這個名稱可以用作標記 <a> 和 <form> 的屬性 target 的值。如果該參數指定了一個已經存在的窗口,那么 open() 方法就不再創建一個新窗口,而只是返回對指定窗口的引用。在這種情況下,features 將被忽略。
features 一個可選的字符串,聲明了新窗口要顯示的標准瀏覽器的特征。如果省略該參數,新窗口將具有所有標准特征。在窗口特征這個表格中,我們對該字符串的格式進行了詳細的說明。
replace

 

一個可選的布爾值。規定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創建一個新條目,還是替換瀏覽歷史中的當前條目。支持下面的值:

  • true - URL 替換瀏覽歷史中的當前條目。
  • false - URL 在瀏覽歷史中創建新的條目。

四.窗口特征(Window Features)

 

channelmode=yes|no|1|0 是否使用劇院模式顯示窗口。默認為 no。
directories=yes|no|1|0 是否添加目錄按鈕。默認為 yes。
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。
titlebar=yes|no|1|0 是否顯示標題欄。默認是 yes。
toolbar=yes|no|1|0 是否顯示瀏覽器的工具欄。默認是 yes。
top=pixels 窗口的 y 坐標。
width=pixels 窗口的文檔顯示區的寬度。以像素計。

 

 

五.

注意:     

window.open(URL,name,features,replace)

如果name使用名字已經存在,那么不會創建一個新的窗口,而是會返回對已經存在的窗口的引用。

否則,則創建一個新的窗口。

我就是沒有注意這點,網頁全屏時候,花了很多時間。

 

六.具體業務功能

6.1 打開一個全屏的窗口

<script type="text/javascript">

window.open("http://google.com/",'新開googleWin',"fullscreen=1")

</script>

 

6.2 使本頁面全屏

解決方案:先打開一個全屏的目標窗口,然后關閉本窗口。

代碼:

<script type="text/javascript">

     var url=document.location.href; //獲得本窗口屬性名
      newWin=window.open(url,'','fullscreen=1,scrollbars=0');      
      window.opener=null;//出掉關閉時候的提示窗口
      window.open('','_self'); //ie7      
      window.close();

</script>

 

注意:如果你在open方法中指定第二個參數,並為他賦予特定的值話,那么第二次使用上面方法,將無法創建新的窗口,因為系統默認的返回已經存在窗口的索引。

 

按ESC退出全屏

<script type="text/javascript">

// Esc退出全屏
      function exitFullScreenMe() 
         { 
             var esc=window.event.keyCode; 
             if(esc==27) //判斷是不是按的Esc鍵,27表示Esc鍵的keyCode. 
             { 
              var url=document.location.href;
              
       win=window.open(url,'','fullscreen=0,directories=1,location=1,menubar=1,resizable=1,scrollbars=1,status=1,titlebar=1,toolbar=1'); //讓新打開的窗口全屏                          
       
       window.opener=null;//出掉關閉時候的提示窗口 
       window.open('','_self');//ie7          
       window.close(); //先關閉老的窗口          
                 
             } 
         } 
         document.onkeydown = exitFullScreenMe ; //當onkeydown(按鍵觸發) 事件發生時調用hotkey函數

</script>

 

6.3同時彈出兩個窗口

<script type="text/javascript">

window.open("http://google.com/",'新開googleWin1',"height=300, width=300, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")

window.open("http://google.com/",'新開googleWin2',"height=300, width=300, top=0, left=400,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")
</script>

注意:(1)窗口的名字不能相同,但可以都為空;

(2)要注意兩個窗口的布局,是否符合你的要求。

 

6.4

第一次進入頁面才彈出窗口.cookie解決

首先,將如下代碼加入主頁面HTML的<HEAD>區:

  <script> 
  function openwin(){ 
  window.open("page.html","","width=200,height=200") 
  } 
  function get_cookie(Name) { 
  var search = Name + "=" 
  var returnvalue = ""; 
  if (document.cookie.length > 0) { 
  offset = document.cookie.indexOf(search) 
  if (offset != -1) { 
  offset += search.length 
  end = document.cookie.indexOf(";", offset); 
  if (end == -1) 
  end = document.cookie.length; 
  returnvalue=unescape(document.cookie.substring(offset, end)) 
  } 
  } 
  return returnvalue; 
  }  
  function loadpopup(){ 
  if (get_cookie('popped')==''){ 
  openwin() 
  document.cookie="popped=yes" 
  } 
  } 
  </script>

  然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替換主頁面中原有的<BODY>這一句即可。你可以試着刷新一下這個頁面或重新進 入該頁面,窗口再也不會彈出了。


免責聲明!

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



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