Как я могу выполнить функцию Javascript перед загрузкой страницы?

Я использую скрытое поле "Isjsenabled", чтобы определить, включен или отключен Javascript клиента. Если Javascript включен, функция Javascript будет запущена, и она установит значение скрытого поля в 1.

Я хочу проверить скрытое значение со стороны сервера Page_load. Но проблема в том, что Javascript запускается после загрузки страницы.

у вас есть какие-либо предложения ?

Html Часть

<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");
}

4 ответов


не слишком задумываясь о направлении, в котором вы пытаетесь пойти, есть немного используемый тег, который поддерживается всеми браузерами под названием 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


вы должны нарисовать свой скрипт или заголовок noscript как страницу на себя, которая затем перенаправляет (либо через мета-тег, либо через местоположение скрипта.href) в следующее место, куда вы хотите пойти, если включен javascript. Это займет 2 шага, но это даст вам результат, который вы ищете. Вы можете передать необходимую информацию обратно себе в запросе перенаправления.


javascript может установить cookie сам по себе.

var myDate = new Date()
document.cookie = 'IJE=1; expires=' + myDate.toGMTString()

это решает вашу проблему?


Ненавязчивый JavaScript может быть интересна. Позволяя вашим страницам деградировать изящно, упростит разработку. Дизайн для Нет JavaScript изначально и улучшить опыт. Это может быть не вариант, если ваше приложение чрезвычайно интенсивно JavaScript и абсолютно требует его функционирования. В этом случае использование тега noscript для информирования пользователей о необходимости включения JavaScript было бы хорошей идеей.

кроме того, посмотрите на комментарии x0n. Вот ссылка чтобы помочь понять HTTP запрос жизненного цикла.