1

我们有一个使用 window.showmodaldialog 的项目,它现在在 Firefox 中已弃用,在 Chrome 中不存在。这在整个项目中被广泛使用,并且依赖于 window.showmodaldialog 暂停代码执行的事实。我们一直在努力寻找可以代替它工作的东西。例如,jQuery 对话框运行良好,但它不会暂停代码执行。我们项目中的功能结构如下。在模式对话框关闭之前,刷新对象的代码无法运行。我们的项目中有很多这样的函数,所以用回调重写它会非常耗时。谢谢。

function DoSomething(){
    window.showmodaldialog(url,...)

    //code to refresh objects, etc.
}
4

1 回答 1

0

如果对 URL 的调用不需要与用户交互,而只是为了更新元素,您应该通过 ajax 使用同步调用。

$.ajax({
    url: theurl,
    async: false
});

执行此操作的完整功能:

var modalCall = function(url){
     $.ajax({
         url: url, 
         async: false,
         crossdomain: true,
         error: function(){
             throw "BLOCK EXECUTION";
         }
     });
 };

这里有一个完整的例子:http: //jsfiddle.net/894c6n1z/

于 2014-09-10T02:57:55.527 回答