我不会说英语很好。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