通过 Javascript 将多个变量传递给 HTML

Passing Multiple Variables to HTML via Javascript

我试图在 google 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.77623600000004, 41.2864603?#174.77623600000004

我希望它是这样的: -41.2864603 ,174.77623600000004

应该是这样的:

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

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

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

哈希

这个想法可行,您只需要正确拆分 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-Parser。只需在 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'));