0

我在需要执行一些服务器端代码然后关闭浏览器窗口的 aspx 页面上有一个退出按钮。该按钮有一个 OnClick 事件和一个 OnClientClick 事件。OnClientClick 事件调用将执行回发然后关闭窗口的方法。该代码在 IE 中运行良好,但不会在 Chrome 中进行回发。在这两种情况下,窗口都会关闭。这是我的代码。我正在检查它是哪个浏览器,但此时在每种情况下都没有做任何不同的事情

function closeMainWindow(control) {
            var clientIDName = control.name;
            if (navigator.userAgent.indexOf('Chrome') != -1) {
                __doPostBack(clientIDName, '');
                    window.open('', '_self', ''); //need this for Chrome
                    window.close();
                    return false;
            }
                else {
                __doPostBack(clientIDName, '');
                window.open('', '_self', ''); //bypasses warning from IE
                window.close();
                return false;
            }

这是按钮的代码。

 <asp:Button ID="btnExit" runat="server" Text="Yes" Width="50px" OnClick="btnExit_Click" OnClientClick="javascript:return closeMainWindow(this);" />

我将不胜感激有关如何在 Chrome 中进行这项工作的任何建议,或者是否有更好/不同的方式来执行服务器端代码然后关闭浏览器窗口。

4

1 回答 1

2

您不必在ClientClick 上执行“window.close()”,删除该客户端代码。执行不带“__doPostBack()”的正常回发,并在该服务器端回发代码中发送“window.close();” 通过“ClientScript.RegisterStartupScript”返回客户端

于 2013-08-21T14:04:09.523 回答