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;
6 window.opener.progressWindow.close();
7 }
8 window.close();
9 }
10 //--> 11 </script> 12 <a href="javascript:void(0)" onclick="refreshParent()">重新整理父視窗並關閉當前視窗</a>