通过Javascript向HTML传递多个变量

j2datikz  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(125)

我试图通过一个纬度和经度从一个页面到另一个后,它已计算的谷歌API。
对于一个指南针网站。想通过纬度和经度都到另一个页面上使用该页面。我正试图通过javascript他们。
传递变量的Java。

var lat = marker.getPosition().lat();
var long = marker.getPosition().lng();
window.location.href = 'compass.html' + '#' + lat +'#' + long;

接收变量的Java

var latD = window.location.hash.substring(1);
var longD = window.location.hash.substring(2);

而不是将它们分开,并一起显示在另一个页面上,其中包括哈希值。
-41.2864603至174.7762360000004号,41.2864603至174.7762360000004号
我希望它是这样的:-41.2864603,174.

q3aa0525

q3aa05251#

哈希

这个想法是可行的,您只需要正确地拆分hash-string。

//REM: On whatever.html
var lat = '-41.2864603';
var long = '174.77623600000004';
var tHref = 'compass.html' + '#' + lat +';' + long; //window.location.href = ..

//REM: On compass.html
var tHash = tHref.split('#').pop(); //window.location.hash.split('#').pop();
var tLat = tHash.split(';')[0];
var tLong = tHash.split(';')[1];

alert('Lat: ' + tLat + ', Long: ' + tLong);

查询串

作为另一种方法,你可以像nbokmans推荐的那样,把它作为普通的QueryString值传递。可以是单独的,也可以是字符串化的对象。不同的是,你需要实现自己的js QueryString-Parser,除非你在服务器上得到这些值。但是你会在google上找到很多QueryString-Parser。
下面是一个例子:How can I get query string values in JavaScript?

本地存储

localStorage对我来说听起来是最简单的解决方案。你不需要为它实现自己的QueryString解析器。只要在whatever. html上设置它,然后在compass. html上阅读它。
检查以下示例:https://developer.mozilla.org/de/docs/Web/API/Window/localStorage

//Set:
window.localStorage.setItem('whatever', JSON.stringify({lat: 1, long:2}));

//Get:
JSON.parse(window.localStorage.getItem('whatever'));
mzsu5hc0

mzsu5hc02#

应该是这样:

var lat = marker.getPosition().lat();

   var lng = marker.getPosition().lng();

   window.location.href = 'compass.html?lat=' + '' + lat +'&longt=' + long;

要访问该页面上的这些变量,

const queryString = window.location.search;
   console.log(queryString); // ?lat=19.234567&longt=73.23456

   const urlParams = new URLSearchParams(queryString);
   const lat = urlParams.get('lat')
   const lng = urlParams.get('longt')
   console.log(lat, lng);

相关问题