JavaScript - 模式視窗和非模式視窗

襲冷發表於2014-04-01
一、視窗建立
    非模式視窗showModelessDialog:

         用法:

function alertWindowForShowModelessDialog(){
     var childWindow = window.showModelessDialog(
          "dialogWindow.html",
          window,
         "dialogWidth:900px;dialogLeft:100px;Minimize=yes;Maximize=yes;");
}
    模式視窗showModalDialog:
         特性:
              始終獲得焦點,即時是最小化,直到關閉
         用法:
function showWindowForShowModalDialog(){
     var childWindow = window.showModalDialog(
          "dialogWindow.html",
          window,
          "dialogHeight: 400px; dialogWidth: 900px; dialogTop: 100px;");
}
二、視窗互動
    父視窗對話子視窗:
         可通過建立時的控制程式碼childWindow呼叫子視窗的方法,如:

childWindow.childAlert();
子視窗對話父視窗:
         可通過建立時傳入的window引數來呼叫父類視窗中的方法([]為子視窗層級決定):

window.dialogArguments[.window.dialogArguments].parentAlert();
三、子視窗重新整理

<input type="button" value="重新整理"  id="reload_a" href=""></a>
          
<script type="text/javascript">
     function reload_self(){
          reload_a.href = "a.html" + "?random="+Math.random();
          reload_a.click();
     }
</script>
四、補充事項
    防止<a/>點選後開啟新頁面的方法:在<head/>之間加入<base target="_self">


    防止<form/>提交之後開啟新頁面的方法:
         其一:
              在<head/>之間加入<base target="_self">,若還不能,則在onsubmit中強制本頁面提交:

function onsubmit(){
     document.Form1.target="_self";
}
         其二:

<script type="text/javascript">
      window.name = "curWindow";
</script>

<form name="myForm" id="myForm" action="" method="post" target="curWindow">
    注意:在普通頁面開啟非模式視窗,非模式視窗再開啟模式視窗時,不可以呼叫普通頁面的方法,會卡死(僅測試IE9)


五、引數說明
    dialogHeight :對話方塊高度,不小於100px,IE4中預設的單位是em,而IE5中是px
    dialogWidth: 對話方塊寬度
    dialogLeft: 離螢幕左的距離
    dialogTop: 離螢幕上的距離
    center: {yes | no | 1 | 0 }:視窗是否居中,預設yes,但仍可以指定高度和寬度
    help: {yes | no | 1 | 0 }:是否顯示幫助按鈕,預設yes
    resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改變大小。預設no
    status: {yes | no | 1 | 0 } [IE5+]:是否顯示狀態列。預設為yes[ Modeless]或no[Modal]
    scroll:{ yes | no | 1 | 0 | on | off }:指明對話方塊是否顯示滾動條。預設為yes
    dialogHide:{ yes | no | 1 | 0 | on | off }:在列印或者預覽時對話方塊是否隱藏。預設為no
    edge:{ sunken | raised }:指明對話方塊的邊框樣式。預設為raised
    unadorned:{ yes | no | 1 | 0 | on | off }:預設為no
    minimize:{ yes | no}:指定對話方塊是否顯示最小化按鈕,預設不顯示
    maximize:{ yes | no}:指定對話方塊是否顯示最大化按鈕,預設不顯示


相關文章