【发布时间】:2018-06-06 02:44:52
【问题描述】:
给定以下网址:
https://example.com/test/results/?usp-custom-14=2015+2017&usp-custom-8=United-States
如何保存三个变量:
var date1: "2015";
var date2: "2017";
var loc = "United States";
注意:我们在 url 2015+2017 中有两个带有 + 符号的日期,我们需要将它们拆分。在网址United-States 中有一个破折号,我们需要它为United States
这就是我正在尝试的:
function getUrlVars() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++) {
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
var dates = getUrlVars()["usp-custom-14"];
var loc = getUrlVars()["usp-custom-8"];
var dateSplit = dates.split("+");
另外,由于其他原因,我需要在页面加载后再次更新 URL,我会这样做:
history.replaceState('data to be passed', 'Title of the page', '<?php echo getAddress(); ?>/?usp-custom-14='+dateSplit+'&usp-custom-8='+loc);
但是url是重复的
https://example.com/test/results/?usp-custom-14=2015+2017&usp-custom-8=United-States/?usp-custom-14=2015,2017&usp-custom-8=United-States
【问题讨论】:
-
@Eddie 这不是真正的重复,我已经提供了我对解决方案的看法,并且根据保存变量和更新 url,我也有不同的需求
-
如果您正在寻找对现有解决方案的改进,请查看codereview.stackexchange.com。
-
@rob.m 如果人们对您要说的内容感到困惑,请考虑澄清问题。
-
可能第一个重复来自
<?php echo getAddress(); ?>
标签: javascript jquery