主頁面調用 openDialog(url, ...) 彈出 EasyUI Dialog(內嵌 iframe 頁面),子頁面點擊「確定」後需將選擇的值傳回父頁面。
EasyUI Dialog 以 iframe 載入子頁面,父子頁面同域下屬於 同一個 window 物件的不同 frame,可通過 parent、window.top 互訪。
function receiveDialogValue(value) {
console.log("收到子頁面值:", value);
// 進一步處理,如填充表單、發送 AJAX
}
// 子頁面 JS
function onConfirm() {
var selected = getSelectedData(); // 組裝數據
if (window.parent && window.parent.receiveDialogValue) {
window.parent.receiveDialogValue(selected);
}
// 關閉 Dialog
window.parent.$("#dialogId").dialog("close");
}
function assignAuth(auth, name) {
var url = "assignAuth.aspx?flag=edit&ids=" + auth;
$("").dialog({
href: url, // 或 content: '
postMessage 通信,父頁面監聽 message 事件驗證 event.origin。