在 asp.net 页面加载之前将 javascript 值发送到服务器

Send javascript values to server before page load in asp.net

我目前正在使用地理定位来获取客户端的浏览器位置。现在,我将值存储在本地存储中,然后在用户提交表单时发送它们。然而,我想在页面加载之前发送它们,这样我就可以 运行 在客户端首次打开页面时进行所需的计算。

这是我用来获取位置的 javascript(效果很好)。页面加载前 运行 秒。

 navigator.geolocation.getCurrentPosition(foundLocation, noLocation);

 function foundLocation(position) {
    if (isPostBack == true) {
            return;
    }

    var lat = position.coords.latitude;
    var long = position.coords.longitude;

    this.localStorage.setItem("lat", Math.round(lat * 1000000) / 1000000);
    this.localStorage.setItem("long", Math.round(long * 1000000) / 1000000);         
 }

然后我使用 window.onload 并调用存储中的值以自动将它们加载到表单上。然后用户单击一个按钮,表单将提交这些值。

我怎样才能将这些值直接发送到服务器?这将允许我 运行 所需的位置计算,而无需用户单击。我知道我可以在 window.onload 触发后自动点击提交按钮,但我不希望它看起来像加载表单、提交然后回发(如果有意义的话)。

我是 asp.net 的新手,所以我什至不确定在这里要问什么问题,所以很抱歉,如果这很简单,我只是在看。

编辑:"possible duplicate" 是关于在我已经在做的页面加载之前执行 js。我的问题更多是关于如何在加载完成之前将值发送回服务器。

您可以先创建一个空白页面。然后该页面可以执行该计算并重定向到通过 POST 或 GET 发送该信息的最终页面。

window.location.href = "your-final-page.aspx?lat=" + lat + "&long=" + long;