我的主页上有一些 javascript 代码,当单击链接时会打开一个弹出窗口:
<script language="javascript">
function OpenResidentialAddressWin(subscriberContactRelationGid, routeId, btn) {
window.showModalDialog("SubscriberResidentialAddress.aspx" + BuildQueryStringValuesForSubscriber(subscriberContactRelationGid, routeId, returntxtReceiptDate().value), this, strWindowFeatures + ";scroll:no;dialogWidth:442px;dialogHeight:350px");
location.href = location.href;
}
</script>
因此,上面的代码在模式窗口中打开了页面 SubscriberResidentialAddress.aspx(以及将许多变量传递到此页面)
现在,此页面的排列方式可以显示或编辑信息。(这些在单独的 div 中显示或隐藏取决于窗口中刚刚按下的按钮)。
目前,在用户保存页面上的信息后,它会切换到显示模式。相反,我想完全关闭模式窗口并重新加载主页。
一位同事建议我在模态窗口的aspx页面上使用文字控件,并在成功保存后向其写入javascript。所以我在 SubscriberResidentialAddress.aspx 页面的 head 部分放置了以下内容:
<asp:Literal runat="server" ID="litCloseWind"></asp:Literal>
然后在执行保存时调用的函数后面的代码中
protected void btnAddSave_Click(object sender, EventArgs e)
{
////// code related to saving
if (status.IsSuccessful)
{
litCloseWind.Text = "<script>this.close()</script>";
Response.Redirect(Request.Url.AbsoluteUri, false);
}
}
我已经尝试了上述方法,也 litCloseWind.Text = "window.close()"; 但是在执行保存后都没有成功关闭模式窗口。
这个计划在逻辑上是否合理,我只是在某个地方犯了错误,还是一开始这是一种不好的做法?