我在需要執行某些服務器端代碼然後關閉瀏覽器窗口的aspx頁面上有一個退出按鈕。該按鈕有一個OnClick事件和一個OnClientClick事件。 OnClientClick事件調用將執行回發然後關閉窗口的方法。該代碼在IE中正常工作,但不會在Chrome中執行回發。窗口在兩種情況下關閉。這是我的代碼。我檢查,看看它是瀏覽器,但在這一點上__doPostBack在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這項工作有任何建議或是否有執行服務器端代碼,然後關閉瀏覽器窗口更好/不同的方式。
Chrome的Javascript控制檯中是否有任何錯誤? – Oscar
我是否遺漏了一些東西,或者是在您的發佈代碼中Chrome與非Chrome的邏輯不相同? –
我想關閉窗口而不確定你的POST請求已被完全處理是一個壞主意。如果你不想像@YuriyGalanter建議的那樣實現一些服務器端的js,你應該依賴一些異步的js表單發佈,例如jQuery Form Plugin(http://malsup.com/jquery/form/) – jbl