在伺服器端 C# 程式碼中嘗試關閉瀏覽器視窗,發現無法直接呼叫相關 API。經查證才明白:C# 執行於伺服器,頁面呈現於客戶端,伺服器無法直接操作客戶端視窗,必須透過 JavaScript 實現。
使用 Response.Write 向輸出串流注入 JavaScript 程式碼:
// 會彈出確認對話框
Response.Write("<script>window.close();</script>");
// 不會彈出確認對話框 (將 opener 設為 null 欺騙瀏覽器)
Response.Write("<script>window.opener=null;window.close();</script>");
window.close() 為瀏覽器原生方法,僅能在客戶端執行。close() 會詢問使用者;將 window.opener = null 可繞過此限制 (視瀏覽器版本而定)。window.close() 限制較嚴,建議改用前端路由或 SPA 架構管理視圖狀態。