我正在为我的项目使用 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/