javascript - window.showmodaldialog 在 chrome 中不起作用

标签 javascript c# jquery asp.net forms

我正在为我的项目使用 VS2010 Express 版本。

我创建了一个带有“提交”按钮的注册表单,它将打开新窗口(子窗口)。

它包含 aspx 按钮 ( )。

子窗口再次包含一个由我们填写的表单,在单击“保存”按钮后,该表单将被保存,保存后如果我们关闭子窗口,则注册表将被提交。

页面加载包含调用 javascript 的函数。

SetJavaScript();
        if (Session["IsSuccess"] != null)
            if (Session["IsSuccess"].ToString().ToLower() == "success")
                TextBox1.Text = Session["IsSuccess"].ToString();
        if (ddlTicketType.SelectedValue.ToString().ToLower() == "cr")
            btnSubmit.Attributes.Add("OnClick", "OpenChild(); ");
        if (ddlTicketType.SelectedValue.ToString().ToLower() == "pr")

btnSubmit.Attributes.Add("OnClick", "clickno();");

因为 window.showmodaldialog 不适用于 chrome。我也使用过 window.open 但它也无法正常工作,因为它打开子表单并在关闭它后注册表单出现错误消息“请填写表单”。 下面是在页面加载时调用的 javascript 代码。


private void SetJavaScript()
   {
    string str_Script = "";
    str_Script += "<script type='text/javascript' language='javascript'>";
    str_Script += "function OpenChild() ";
    str_Script += "{ CheckValidation();";
    str_Script += "var varx = document.getElementById('TextBox1').value;";

    str_Script += "if (varx== 'yes'){";
    str_Script += "var ParmA = '2';";
    str_Script += "var MyArgs = new Array(ParmA);";
    str_Script += "if (ParmA=='2'){";
    str_Script += "var WinSettings = 'center:yes;resizable:yes;dialogheight:800px;dialogwidth:1000px';";
    str_Script += "MyArgs = window.showModalDialog('user/cr1.aspx', MyArgs, WinSettings);";

    str_Script += "if (MyArgs == null)";
    str_Script += "{";
    str_Script += "}";
    str_Script += "else";
    str_Script += "{";
    str_Script += "document.getElementById('TextBox1').value =MyArgs[0].toString();";
    str_Script += "}";
    str_Script += "}}";
    str_Script += "</script> ";
    this.Page.RegisterStartupScript("Reconnect", str_Script);

请帮助我让它再次正常工作,因为它在 chrome 更新之前工作得很好。 请让我知道可以解决此问题的任何好的替代方法。

最佳答案

如您所见here , Window.showModalDialog() 已弃用,Chrome 从版本 37 开始不再支持它,并已从版本 43 中完全删除。

使用Bootstrap Modal相反,或者,如果太昂贵而无法改变,试试这个 library , 那是一个 window.showModalDialog polyfill

关于javascript - window.showmodaldialog 在 chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36500345/

相关文章:

Jquery UI 按钮定位

javascript - 有没有办法从 Angular 依赖注入(inject)中摆脱循环依赖

javascript - 如何在 html5 中使用现有的 sqlite 数据库

javascript - 我有这个错误: Cannot read property 'value' of null, I dont understand why

c# - 具有 'normal' 接口(interface)的 WCF 异步实现

c# - .NET WebApi如何防止 "$ref": "x" output of JSON

c# - 是否存在完全空的网站项目这样的事情?

javascript - 带有 setTimeout 的递归 JS 函数

jquery - jQuery ui按钮在IE8中单击时崩溃(仅)

javascript - 将 Knockout.JS View 模型绑定(bind)到 jQuery 对话框