showmodal对话框突然在chrome中给出了undefined

时间:2014-09-16 16:43:24

标签: javascript html

我有以下脚本如下。

$('.t1 span.droppable').each(function(){
                //alert("DROP");
                //$(this).droppable();
        $('.droppable').droppable({
    drop: function(event, ui) {


    var fromd = 0;
    var tod = 0;
    var url1 = "insertsw.php?fromd=" + fromd + "&tod=" + tod;
    var r = "";
    objArgs = new Array(tpFrom, sFrom, nsdFrom, tpTo,sTo, dTo);
    r=showModalDialog(url1,objArgs,"dialogWidth: 450; dialogHeight: 300; resizable: yes");

   if(r==null)
                {
                    popUpOpen=1;
                }
                else
                {
                    popUpOpen=1;
                //alert("R : "+r);
                var n=r.split("#");
                }
   }
 }
}

它已经在Chrome上工作了将近3年,现在突然显示未定义。但像往常一样在firefox上运行正常。 Chrome为我做了哪些改变以适应它?

2 个答案:

答案 0 :(得分:0)

这是您的问题: http://windowsitpro.com/blog/google-kills-showmodaldialog-api-chrome-37-and-does-evil-exchange-owa

以下是一些解决方法: Why is window.showModalDialog deprecated? What to use instead?

编辑:

看看这个包:showModalDialog

您不应该进行太多改动以使此软件包与您的软件包一起使用。它的语法几乎相同。

例如,你可以这样做:

window.showModalDialog("demo-modal.html", "some arguments", "dialogWidth:500px;dialogHeight:200px");

这与您目前拥有的几乎相同。看看是否只包括该软件包修复它。我相信它应该。似乎根本不是一个不同的语法,这应该在chrome

中起作用

答案 1 :(得分:0)

您可以使用:

    if(no_support_dialog()){
       showModalDialog(url1,objArgs,"dialogWidth: 450; dialogHeight: 300; resizable: yes");
    }else{
       alert('This browser does not support the native method \'showModalDialog\'');
    }

    function no_support_dialog() {
        return (/\{\s*\[native code\]\s*\}/).test('' + window.showModalDialog);
    }