我不會說英語很好。Javascript - 等待用戶交互而不凍結瀏覽器
我的公司已經開發了一個網絡瀏覽器的Web應用程序,非常劇烈地使用功能showModalDialog
並等待結果。
我們正計劃擴大該應用使用其他瀏覽器(火狐,Chrome),我需要將所有的瀏覽器很好地工作邏輯來代替「showModalDialog
邏輯」。
我最初嘗試使用ajaxcontroltoolkit
modalpopup
與iframe
裏面。
我的問題是,我已經顯示modalpopup
之後,我不能等待用戶關閉彈出窗口而不凍結Web界面。
function OpenDialog() {
var result = window.showModalDialog("page1.html", "input_parameter", "width:100px; height:100px");
//When the popup went closed
alert("result: " + result);
}
//Override showModalDialog function for compatibility with other browser
function myShowModalDialog(url, pars, options) {
//show a jquery modalpopup or ajaxcontroltoolkit modalpopup with an iframe ....
iframe.src = url;
//I need to wait here until the modal popup closed
//HOW?
//get the value from popup
var res = ???????;
return res;
}
window.showModalDialog = myShowModalDialog;
我無法更改webapp中每個頁面的邏輯。
我搜索了一種方法來覆蓋showModalDialog
函數並重新創建相同的邏輯(等到彈出窗口關閉並獲得彈出窗口爲調用者提供的結果)。
任何想法?感謝所有
考慮設計一個絕對定位的面板,而不是打開一個窗口或ASO等待iframe中。您可以創建一個全尺寸覆蓋圖,捕捉所有事件並取消它們。 –
從代碼等待的意義上說,您無法創建模態對話框。相反,使用事件並在關閉對話框時觸發事件。從您的代碼中檢索您的結果,而不是等待它。 – hotforfeature
@Quasimodo:是的,我要使用這個組件:http://www.asp.net/AjaxLibrary/AjaxControlToolkitSampleSite/ModalPopup/ModalPopup.aspx – bdn02