繁体   English   中英

页面加载前如何执行jQuery脚本?

[英]How to execute jquery script before page load?

我需要在ASP.NET应用程序中的页面加载之前执行javascript。

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

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

这是我的代码:

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

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

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

在后面的代码中,我尝试获取价值,但始终为空

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

我需要在ASP.NET应用程序中的页面加载之前执行javascript

此要求没有任何意义。 记住ASP.NET是如何工作的:

  1. 用户请求命中了Web服务器
  2. Web服务器将请求分派到ASP.NET引擎。
  3. ASP.NET引擎将实例化页面并遍历整个页面生命周期。
  4. 该页面以HTML呈现并发送到客户端
  5. 客户端浏览器构建DOM,运行客户端javascript,...

您会看到不可能在步骤3(执行Page_Load事件的步骤)之前执行步骤5。

使用JavaScript执行ajax回调以请求数据。

我需要在ASP.NET应用程序中的页面加载之前执行javascript。

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

取而代之的是,创建一个微型页面进行JS调用,然后回发到当前页面,或者(可能更好)加载一个新页面。 您可以通过常规(非服务器)格式传递位置数据,也可以通过在客户端上的JS中设置cookie来传递位置数据,或将其编码为查询字符串。

当第二个页面/请求触发Page_Load()事件时,它将获得您需要的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM