1. 程式人生 > >window.open開啟一個新視窗/子視窗中呼叫父視窗的方法

window.open開啟一個新視窗/子視窗中呼叫父視窗的方法

window.open 只打開一個視窗是將
     oNewWindow   =   window   .   open   (   sURL   ,   sName   ,   sFeatures   ,   bReplace   )
中的sName 設定成一個固定值,如果有框架的話設定成“_top”
語法:  
  oNewWindow   =   window   .   open   (   sURL   ,   sName   ,   sFeatures   ,   bReplace   )    
  引數:  
  sUrl     :   可選項。字串(String)。指定要被載入的HTML文件的   URL   地址。假如無指定值,則   about:blank   的新視窗會被顯示。    
  sName     :   可選項。字串(String)。   指定開啟的視窗的名字。這個名字可以用於   form   或   a   物件的   TARGET   屬性。此名字也可以使用下列通用名稱:   _media     :   IE6.0     在瀏覽器左邊的媒體面板內開啟   sUrl   。    
  _blank     :     在新視窗中開啟   sUrl   。    
  _parent     :     在當前框架的父框架內開啟。假如當前框架無父框架,此引數值等同於   _self   。    
  _search     :   IE5.0     在瀏覽器左邊的搜尋面板內開啟   sUrl   。    
  _self     :     sUrl   在當前視窗中開啟,覆蓋當前文件。    
  _top     :     在所有框架之外的最頂層視窗中開啟   sUrl   。假如當前視窗無框架結構,此引數值等同於   _self   。    
     
  sFeatures     :   可選項。字串(String)。   指定視窗裝飾樣式。使用下面的值。多個之間用逗號隔開。只有當新的瀏覽器視窗被建立時,此引數的設定才會發生作用。   channelmode   =   {   yes   |   no   |   1   |   0   }        指定是否將視窗顯示為頻道模式。預設值為   no   。    
  directories   =   {   yes   |   no   |   1   |   0   }        指定是否顯示「連結」按鈕。預設值為   yes   。    
  fullscreen   =   {   yes   |   no   |   1   |   0   }        指定是否以全屏方式顯示視窗。預設值為   no   。要小心使用全屏模式,因為這種模式會隱藏瀏覽器視窗的標題欄和選單。如果沒有在頁面內提供關閉視窗的功能,使用者可以使用   ALT+F4   快捷鍵關閉視窗。    
  height   =   number        設定視窗的高度。最小值為   100   。    
  left   =   number        設定視窗左上角相對於桌面的橫座標。單位為畫素(   px   )。    
  width   =   number        設定視窗的寬度。最小值為   100   。    
  top   =   number        設定視窗左上角相對於桌面的縱座標。單位為畫素(   px   )。    
  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   }        設定是否顯示瀏覽器視窗的標題欄。除非呼叫程式是HTML應用程式(   HTA   )或被信任的對話方塊,否則此引數將被忽略。預設值為   yes   。    
  toolbar   =   {   yes   |   no   |   1   |   0   }        設定是否顯示瀏覽器視窗的工具條。預設值為   yes   。    
     
  bReplace     :   可選項。布林值(Boolean)。false   |   true   false     :   新開啟的文件覆蓋歷史列表裡的當前文件。    
   
  true     :   文新開啟的文件被簡單的新增到歷史列表的最後。    
     
   
  返回值:  
  oNewWindow     :   物件(Element)。返回對新的   window   物件的引用。    
_______________________________________________________________________________________

當彈出子視窗使用的是 window.open();
方法時可以在子視窗使用:
                             1 . parant.method();
                             2 . opener.method();
兩個方法呼叫父視窗的方法!

當彈出視窗使用的是模態視窗 window.showModelDialog();方法時可以在子視窗使用:
1 . var parentObj = window.dialogArguments;
      parentObj.method();
方法呼叫父視窗的方法!

建議使用方法時考慮清楚彈出視窗究竟是什麼模式的對話方塊,如果不清楚建議使用:


try{
         opener.method();//彈出的是普通視窗
}catch(e1){
    try{
           var parentObj = window.dialogArguments;//彈出的是模態視窗
            parentObj.method();
     }catch(e2){//有可能父視窗沒有這個方法!
}




//=====================================================================

子視窗給父視窗傳值的時候

window.parent.opener.document.getElementById("A431").value= “12312”


//=====================================================================

有時我們需要在新開啟的窗口裡面編輯資訊,等編輯完了,需要將當前視窗關閉並且重新整理父視窗,以使修改生效,本文就是介紹用 javascript 來實現"更新記錄後關閉子視窗並重新整理父視窗".

父視窗:

?
1 <a href="javascript:void(0)" onclick="window.open('child.html','child','width=400,height=300,left=200,top=200');">開啟子視窗</a>
子視窗:
Js程式碼 程式碼  1 <script language="JavaScript" type="text/javascript">2 <!--3 function refreshParent() {
4 window.opener.location.href = window.opener.location.href;
5 if (window.opener.progressWindow) {
6 window.opener.progressWindow.close();
7 }
8 window.close();
9 }
10 //--> 11 </script> 12 <a href="javascript:void(0)" onclick="refreshParent()">重新整理父視窗並關閉當前視窗</a>