window.open()與window.showModalDialog區別


window.open()與window.showModalDialog區別

 彈出窗口兩種方式:
    1.window.showModalDialog:
      var feature = "dialogWidth:615px;dialogHeight:505px;status:no;help:no;scroll:no;resizable:no;center:yes";
      window.showModalDialog(url, Object(傳給彈出窗口的參數,可以是任何類型),feature) 
      決定窗口的外觀是第三個參數feature,其中center屬性指定為"yes",彈出窗口居中;
      如果想手動指定彈出窗口的具體位置,去掉center屬性,
       用dialogTop(彈出窗口上邊界居屏幕上的距離)
       dialogLeft(彈出窗口左邊界居屏幕左的距離)屬性
      如:(距離是px像素),這里手動指定彈出窗口位置居中
      var iTop = (window.screen.availHeight-550)/2; //獲得窗口的垂直位置,550為彈出窗口的height;
      var iLeft = (window.screen.availWidth-640)/2; //獲得窗口的水平位置,640為彈出窗口的width;
      var feature = "dialogWidth:640px;dialogHeight:550px;status:no;help:no;scroll:no;resizable:no;dialogTop:'+iTop+';dialogLeft:'+iLeft+';";
    2.window.open:  
      var feature = "width=615,height=505,menubar=no,toolbar=no,location=no,scrollbars=no,status=no,modal=yes"
      window.open(url, "name(只能為字符串,不能傳window)", feature) 
      手動指定彈出窗口位置,屬性top:(彈出窗口上邊界居屏幕上的距離)
                            屬性left:(彈出窗口左邊界居屏幕左的距離)
      下面指定彈出窗口位置居中(這種方式沒有center屬性):
       var iTop = (window.screen.availHeight-550)/2; //獲得窗口的垂直位置,550為彈出窗口的height;
      var iLeft = (window.screen.availWidth-640)/2; //獲得窗口的水平位置,640為彈出窗口的width;
      var feature = "width=615,height=505,top="+iTop+",left="+iLeft+",menubar=no,toolbar=no,location=no,scrollbars=no,status=no,modal=yes";
   
   子窗口調用父窗口的東東(控件或者方法):
   1. window.open打開的子窗口有window.opener屬性
     子窗口通過window.opener.xxxx獲得父窗口的東東。
     如:window.opener.document.getElementById("userName");得到父頁面的控件。
       window.opener.fresh();調用父頁面的js方法。
   2. window.showModalDialog:不支持window.opener,
      子窗口通過window.dialogArguments.xxxx獲得父窗口的東東。
      父窗口通過showModalDialog(url,para,feature)第二個參數para傳參數給子窗口,
      子窗口通過window.dialogArguments獲得父窗口穿過來的東西。
      
      如:這里傳父頁面的window過去
        父頁面:showModalDialog(url,window,feature)
       子頁面:var name = window.dialogArguments.document.getElementById("userName").value;得到父頁面的控件。
            var name = window.dialogArguments.fresh();調用父頁面的方法。
      這里的window.dialogArguments里的window代表父頁面的window,它是通過showModalDialog方法的第二個參數window傳過來的,
      當然也可以傳數組或其它變量。


免責聲明!

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



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