Dot-Net

如何在頁面載入之前執行 Javascript 函式?

  • January 2, 2013

我正在使用隱藏欄位“Isjsenabled”來檢測客戶端的 Javascript 是啟用還是禁用。如果啟用 Javascript,將觸發 Javascript 函式並將隱藏欄位的值設置為 1。

我想檢查伺服器端 Page_load 的隱藏值。但問題是 Javascript 在頁面載入後被觸發。

你有什麼建議嗎?

網頁部分

<script type="text/javascript">
   $(function() {
       $("#<%= Isjsenabled.ClientID %>").val(1);
   }); 
</script>

<input id="Isjsenabled" runat="server" value ="0"  type="hidden"  />

部分程式碼

protected void Page_Load(object sender, EventArgs e) {                
   HtmlInputHidden hdn = this.FindControl("Isjsenabled") as HtmlInputHidden;
       if (hdn != null)
           if (hdn.Value != null && hdn.Value == "0")
               Helper.SetCookie("IJE", "0");
           else
               Helper.SetCookie("IJE", "1");
}

無需過多考慮您嘗試進入的方向,所有瀏覽器都支持一個小標籤,稱為 NOSCRIPT。

<noscript>
<img src="http://myserver/notify_no_script.aspx" style="display:none">
</noscript>

如您所見,這個想法是讓瀏覽器請求圖像,但前提是禁用 javascript。該頁面可以設置一個會話變數,說明目前客戶端沒有可用於目前會話中所有程式碼的腳本功能。

或者,您可以遵循目前的方法:

<noscript>
<input type="hidden" name="noscript" value="1">
</noscript>
<script><!--
document.writeline('<input type="hidden" name="noscript" value="0">');
//--></script>

希望這可以幫助,

-Oisin

引用自:https://stackoverflow.com/questions/885909