【问题标题】:Passing Multiple Variables to HTML via Javascript通过 Javascript 将多个变量传递给 HTML
【发布时间】:2019-05-24 08:31:15
【问题描述】:

在谷歌 API 计算出纬度和经度后,我试图将其从一个页面传递到另一个页面。

对于指南针网站。想要将 lat 和 long 都传递到另一个页面以在该页面上使用。我正在尝试通过 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

【问题讨论】:

  • 这看起来很奇怪的Java,我想我以前没有见过它,它是什么版本?
  • java没有window对象,你标记错了
  • 它用于 HTML。抱歉,这是新手。
  • 与其滥用锚链接(#....),不如利用查询参数?即compass.html?lat=....&lng=....。这样,您的参数将更容易解析,并且您也不会遇到您在此处描述的问题。
  • 我想我试过了,但它不想工作。这是我第一次尝试这种事情,对我来说是一个新的过程。

标签: javascript html window


【解决方案1】:

哈希

这个想法有效,您只需要正确拆分哈希字符串。

//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-Parsers。

这是一个例子: 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'));

【讨论】:

  • 谢谢!这非常有帮助且内容丰富。感谢您花时间写出如此好的答案!成功了
【解决方案2】:

应该是这样的:

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

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

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

【讨论】:

  • 如何在使用这些变量的代码中访问它?也谢谢你的回答!
猜你喜欢
  • 2015-01-28
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 2015-11-05
  • 2015-04-01
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多