显示模态对话框并暂停代码执行

时间:2014-09-10 01:19:06

标签: javascript jquery showmodaldialog

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

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

    //code to refresh objects, etc.
}

1 个答案:

答案 0 :(得分: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/