1、用mini.open時的彈窗中子頁面訪問父級頁面獲取數據問題:
api的示例:
在獲取數據的時候,父頁面傳數據給子頁面是通過iframe.contentWindow去獲取子頁面的方法,這個方法就是setData();
子頁面中例如要獲取父頁面的手機號,那么代碼可以這樣寫
function SetData(phone){ var phoneInp = mini.get('phone_num'); phoneInp.setValue(phone); }
而父級頁面就是傳數據,代碼可以這樣寫
function editContactInfo(){ var phoneNum =document.querySelector('.traveller-phone').innerHTML; var btnEdit = this; mini.open({ url: '/tms/example/editContactPop.html', title: "修改聯系人", width: 600, allowResize: false, height: 369, onload: function () { var iframe = this.getIFrameEl(); iframe.contentWindow.SetData(phoneNum); //調用彈出頁面方法進行初始化 }, ondestroy: function (action) { if (action == "ok") { var iframe = this.getIFrameEl(); var data = iframe.contentWindow.GetData(); data = mini.clone(data); if (data) { document.querySelector('.traveller-phone').innerHTML =data; } } } }); }
點擊彈窗的取消按鈕關閉彈窗代碼
/** * 取消 */ function onCancel(){ CloseWindow("ok"); } function CloseWindow(action) { if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action); else window.close(); }
它是通過返回值來關閉彈窗,在api示例代碼中可以看到ondestroy方法里的參數action即是返回值。