__doPostBack在Chrome中不起作用

__doPostBack does not work in Chrome

本文关键字:不起作用 doPostBack Chrome      更新时间:2023-09-26

我在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中实现这一功能的建议,或者是否有更好/不同的方式来执行服务器端代码,然后关闭浏览器窗口,我将不胜感激。

您不必在ClientClick上执行"window.close()",删除客户端代码。在不使用"__doPostBack()"的情况下执行正常回发,并在服务器端回发代码内部通过"ClientScript.RegisterStartupScript"

将"window.close();"发送回客户端