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