在 ASP.NET Web Forms 開發中,後台程式碼常需觸發前端 JavaScript 執行。本文整理兩種常見做法,並說明各自的適用場景與注意事項。
最直觀的方法是用 Response.Write 直接寫入一段 JavaScript 程式碼。這適合執行簡單的單行指令(如 alert()),但無法呼叫前端已定義的自訂函式。
string jss = "<script language='javascript' type='text/javascript'> alert('hello')</script>";
Response.Write(jss);
ASP.NET 2.0 引入 ClientScriptManager 類別,取代已過時的 Page.RegisterStartupScript。透過 RegisterStartupScript 方法,可在頁面載入完成後自動執行指定腳本,並能正確呼叫前端自訂函式(例如 mya())。
string sl = "<script language='javascript' type='text/javascript'> mya('he')</script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "mya", sl);
string sl = "<script language='javascript' type='text/javascript'> mya('he')</script>";
Page.RegisterStartupScript("mya", sl); // 已標記過時
ClientScriptManager 實例,用於管理、註冊、新增客戶端腳本。Page 物件註冊啟動腳本,確保在頁面呈現後執行。Page.ClientScript.RegisterStartupScript,確保相容性與維護性。