如何在页面加载之前执行Javascript函数?

mit*_*737 7 .net javascript browser asp.net

我正在使用隐藏字段'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"  />
Run Code Online (Sandbox Code Playgroud)

部分背后的代码

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");
}
Run Code Online (Sandbox Code Playgroud)

x0n*_*x0n 12

如果不考虑你想要进入的方向,那么所有名为NOSCRIPT的浏览器都支持一些使用过的标记.

<noscript>
<img src="http://myserver/notify_no_script.aspx" style="display:none">
</noscript>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我们的想法是让浏览器请求图片,但前提是禁用了javascript.此页面可以设置会话变量,指出当前客户端没有可用于当前会话中所有代码的脚本功能.

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

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

希望这可以帮助,

-Oisin

  • javascript在_server_页面上的_client_上运行.就像我在你原来问题的评论中提到的那样,你想做的事情是不可能的.为了读取字段的*new*值,必须进行回发.浏览器和页面之间没有真正的连接. (2认同)