1. 程式人生 > >showModalDialog開啟視窗中獲取父視窗js方法

showModalDialog開啟視窗中獲取父視窗js方法

1.父視窗操作子視窗

父視窗JS程式碼:

var parValue="現在顯示了父視窗中的變數值";

var hao="郝建衛"; 

function ShowDailog(PageHref,Title,Height,Width)

{

       //--------------left位置

       //screen.availHeight聲明瞭顯示瀏覽器的螢幕的可用寬度

       var dleft =(screen.availHeight-Height)/2;

       //--------------top位置

       var dtop  =(screen.availWidth-Width)/2
; //--------------- Var sRet = window.showModalDialog(PageHref,window,Title,"scrollbars=yes;resizable=no;help=no;status=no;center=yes;dialogTop=25;dialogLeft="+ dleft +";dialogTop="+ dtop +";dialogHeight="+Height+"px;dialogWidth="+Width+"px;"); //--------return if (sRet =="refresh"
)//這種是利用返回值來重新整理父頁面 { window.Test="true"; window.location.reload(); alert(window.Test); } }
function  test()

{

       alert("模態視窗成功呼叫父視窗的方法");

}

2.模態視窗操作父視窗

var parentWin=window.dialogArguments;  

重新整理:

parentWin.location
.reload();

取值:

alert(parentWin.document.getElementById("ShowModalDialogDiv").innerHTML)   //獲取父視窗中的物件 

alert("我是從父視窗中得到的變數>>>"+parentWin.parValue);       //獲取父視窗中的變數

呼叫父視窗JS方法:

parentWin.test();    //呼叫父視窗中的方法

賦值:

parentWin.document.getElementById("ShowModalDialogDiv").innerHTML="我是從子視窗ShowModalDialog傳過來的值";       

關閉本視窗:

//關閉本視窗

function CloseWindow()

{

       window.parent.close();

}

關閉父視窗:

//關閉父視窗

function CloseModal()

{     

       var IsIE = (navigator.appName == 'Microsoft Internet Explorer')

              if(IsIE){//如果是IE             

                     window.parent.parent.close();

                     //parentWin.opener=null;如果把上面的換成這行,不能關閉父視窗,

                     parentWin.close();

                     //window.parent.parent.parent.parent.close();這個只能關閉模態視窗本身目前只在IE6下測試

              }else{

                     alert("火狐不能直接關閉;需要以下設定1.開firefox,在位址列輸入about:config;2.找到dom.allow_scripts_to_close_windows這項並改為true");

              }     

}