javascript - 为当前域上的每个链接添加/保留查询字符串(如果存在)

标签 javascript

我能做的事情非常有限,因此不幸的是 cookie 和 local_storage 不是一个选项。

我正在寻找一种解决方案,使特定的查询字符串在网站的每个页面上都可用...

假设查询字符串是: ?keepme=true

我认为最好的方法是修改每个 <a>具有当前域 URL 的标记并修改链接以包含查询字符串?

如有任何建议,我们将不胜感激。

最佳答案

如果您想在客户端检查所有页面中的keepme变量,您可以使用localstorage而不是查询字符串。

如果keepme变量需要在服务器端处理,则应该使用session来存储值。

如果你想手动添加查询字符串,可以这样做。

function addOrUpdateQueryStringParameter(uri, key, value) {
  var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
  var separator = uri.indexOf('?') !== -1 ? "&" : "?";
  if (uri.match(re)) {
    return uri.replace(re, '$1' + key + "=" + value + '$2');
  }
  else {
    return uri + separator + key + "=" + value;
  }
}

console.log(addOrUpdateQueryStringParameter('/test-url','keepme', true))

关于javascript - 为当前域上的每个链接添加/保留查询字符串(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55175311/

相关文章:

javascript - 带有 Typescript 的 ES6 箭头函数

javascript - 使用选项卡从列表创建片段

javascript - Jquery 对象到字符串并返回到对象

javascript - 如何为此自定义滚动添加下一个和上一个按钮?

c# - 如何从 Javascript 调用 OnPageIndexChanging?

javascript - 攻击者可以在关闭 JavaScript 的情况下绕过 Ajax Form

javascript - 为什么我不能在 .on 中调用我的函数?

javascript - i18n-js 翻译不更新 .yml 中的其他翻译

javascript - ASP.NET MVC 2 重新加载页面而不刷新并保持 URL 变化

javascript - CouchDB - 创建或更新文档时触发代码