如何在页面加载之前执行jquery脚本?

时间:2011-12-17 17:12:37

标签: c# javascript jquery asp.net

我需要在ASP.NET应用程序中的Page load之前执行javascript。

我的函数返回用户位置,我想将值传递给服务器端并根据位置加载数据。

问题是页面加载后执行javascript函数。

这是我的代码:

    $(function () {
        getLocation();
    });

在getLocation函数中我设置隐藏字段值

$("#<%= HfLocation.ClientID %>").val(location);

在代码背后我尝试获取价值,但它总是空的

protected void Page_Load(object sender, EventArgs e)
        {
            var location = HfLocation.Value;
        }

3 个答案:

答案 0 :(得分:6)

  

我需要在ASP.NET应用程序中的Page load之前执行javascript

这个要求毫无意义。记住ASP.NET的工作原理:

  1. 用户请求命中网络服务器
  2. Web服务器将请求分派给ASP.NET引擎。
  3. ASP.NET引擎实例化页面并完成整个页面生命周期。
  4. 页面呈现为HTML并发送到客户端
  5. 客户端浏览器构建DOM,运行客户端javascript,...
  6. 您发现在步骤3(执行Page_Load事件)之前执行步骤5是不可能的。

答案 1 :(得分:0)

  

我需要在ASP.NET应用程序中的Page load之前执行javascript。

在这种情况下,您需要发出两个页面请求。您无法使用单个页面请求执行此操作,因为Page_Load()在将HTML + JS发送到客户端之前运行。

相反,有一个迷你页面进行JS调用,然后要么回发到当前页面,要么(可能更好),加载一个新页面。您可以通过常规(非服务器)表单传递位置数据,也可以通过在客户端上从JS设置cookie,或将其编码为查询字符串。

第二页/请求将在其Page_Load()事件触发时获得所需的数据。

答案 2 :(得分:0)

使用javascript进行ajax回调以请求数据。