如何将查询字符串传递给window.location.replace()?

时间:2017-12-15 22:41:12

标签: javascript

我发送的电子邮件将用户链接到带有查询字符串的网址。我正在检索此字符串:

var getQueryString = function ( field, url ) {
var href = url ? url : window.location.href;
var reg = new RegExp( '[?&]' + field + '=([^&#]*)', 'i' );
var string = reg.exec(href);
return string ? string[1] : null;
};

var list = getQueryString('list', window.location.href);
console.log(list);

我想将此查询字符串传递给此页面上的另一个链接。我当前的函数读作:

function signin(){
  var email = document.getElementById('email').value;
  var password = document.getElementById('password').value;
  firebase.auth().signInWithEmailAndPassword(email, password).then(function(){
    window.location.replace("management.html" + list);
  })
  .catch(function(error) {
    ...
  });
}

如何正确地将变量list传递给signin

2 个答案:

答案 0 :(得分:1)

您的list变量仅包含查询'?list=123'的值,例如'123'

您没有创建新的查询字符串....只需将相同的值添加到新网址的末尾,以便它看起来像"management.html123'

如果您希望将当前页面的整个查询字符串传递到新页面,您可以使用location.search

location.replace("management.html" + location.search);

或只是'list'做:

location.replace("management.html?list=" + list);

答案 1 :(得分:-1)

如果这些不在同一页面上并且无法访问全局变量,我将使用此处提供的本地存储解决方案:

Passing Variable through JavaScript from one html page to another page