window.showModalDialog用法


今天把window.showModalDialog用法記錄一下,下面說的父窗口和子窗口之間傳值的問題

js代碼片段:這是一個js的function

function menuQuery(field1,field2,path) {
    var str = "";
    if (window.screen) {
        var ah = screen.availHeight - 20;
        var aw = screen.availWidth - 10;
        var xc = (aw - 50) / 2;
        var yc = (ah - 485) / 2;
        str += "dialogLeft:" + xc + ";";
        str += "dialogTop:" + yc + ";";
    }
    window.showModalDialog("system.menu.menuReadAction.do",window, "dialogHeight:450px;dialogWidth:200px;status=no;"+str);
}

1.  str 字符串只是拼接了指定窗口位置的參數
2.  window.showModalDialog("system.menu.menuReadAction.do",window,"dialogHeight:45px;dialogWidth:200px;status=no;"+str);

    本句的意思是打開一個子窗口, 在showModalDialog中傳了3個參數:

  第一個參數 指定 頁面跳轉的地址,第二個參數是window,可以把父窗口對象傳給子頁面,第三個參數是控制子窗口的顯示位置

 

jsp代碼片段:

<td align="left" width="70%">
   <input type=text id="parentMenuName" value="<s:property value="#request.parentMenu"/>" readonly />
    <input type="hidden" id="mnId" name="pMnId" value="<s:property value='menu.parentMenu.mnId'/>" />
    <s:fielderror fieldName="menu.mnName" />
    <input type="button" value="選擇" id="chose" onclick="menuQuery(mnId,parentMenuName);">
</td>

在jsp代碼中onclick="menuQuery(mnId,parentMenuName)"用來調用上面js的function

在打開的子窗口中,有如下js腳本

<script>
var val=window.dialogArguments.document.getElementById("parentMenuName");
      var val2=window.dialogArguments.document.getElementById("mnId");
      val.value="部門";
      val2.value="0102999";
      window.close()
</script>

在子窗口中就可以通過window.dialogArguments獲取父窗口對象,
通過window.dialogArguments.document.getElementById("parentMenuName")來獲取父窗口中的id為parentMenuName的dom對象

通過window.dialogArguments.document.getElementById("mnId");來獲取父窗口中的id為mnId的dom對象

再通過下面的語句,就可以在子窗口的js代碼中為父窗口中的dom元素賦值

val.value="部門";

val2.vlue="0102999"

最后通過window.close();關掉子窗口

 

 

 

 


免責聲明!

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



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