JavaScript中的查询字符串

3
通过使用document.referrer,我们可以在JavaScript中获取所有URL的引用,例如以下内容:
http://localhost/testwordpress/wp-admin/admin.php?page=thesis-options&upgraded=true

从这个输出中,我们如何仅提取查询字符串部分:
?page=thesis-options&upgraded=true

在JavaScript中是否有任何方法可以使用?
3个回答

4
document.referrer 中获取查询字符串,您可以使用 split() 方法:
var qs = document.referrer.split('?')[1];

if (typeof qs !== 'undefined') {
    // qs contains the query string.
    // this would be "page=thesis-options&upgraded=true" in your case.
}
else {
    // there was no query string in document.referrer.
}

1
如果您只是想从查询字符串中获取值,我使用以下函数:

function getQuerystring(key)
{
  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  var qs = regex.exec(window.location.href);
  if(qs == null)
    return default_;
  else
    return qs[1];
}

只需传入您要查找的键,即可获取相应的值。 例如:getQueryString('upgraded') 将返回 true。


3
请注意,您可能需要将window.location.href更改为document.referrer - Daniel Vassallo
@Daniel Vassallo:这是一个很好的观点。window.location.href只会显示用户在浏览器中看到的内容。如果你想要获取特定引荐信息,使用document.referrer可能更好。 - ashurexm

0

有一些相关的函数可以实现这个功能。例如,可以参考this


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接