window.showModalDialog用法

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

js代碼片斷:這是一個js的functionjsp

複製代碼
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);spa

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

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

 

jsp代碼片斷:blog

複製代碼
<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的functionip

在打開的子窗口中,有以下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對象get

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

再經過下面的語句,就能夠在子窗口的js代碼中爲父窗口中的dom元素賦值

val.value="部門";

val2.vlue="0102999"

最後經過window.close();關掉子窗口

相關文章
相關標籤/搜索