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

Javascript 向当前域上的每个链接添加/保留查询字符串(如果存在),javascript,Javascript,我的能力非常有限,所以很遗憾,cookies和本地存储不是一个选项 我正在寻找一个解决方案,以保持一个特定的查询字符串在网站上的每一页可用 假设查询字符串为:?keepme=true 我认为最好的方法是修改每个具有当前域URL的标记,并修改链接以包含查询字符串 任何建议都将不胜感激。如果您想在客户端的所有页面中检查keepme变量,您可以使用localstorage而不是查询字符串 如果需要在服务器端处理keepme变量,则应使用session存储值 如果您想手动添加到查询字符串,可以这样做

我的能力非常有限,所以很遗憾,cookies和本地存储不是一个选项

我正在寻找一个解决方案,以保持一个特定的查询字符串在网站上的每一页可用

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

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


任何建议都将不胜感激。

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

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

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

函数addOrUpdateQueryStringParameter(uri、键、值){
var re=new RegExp(“([?&])”+key+“=.*(&$)”,“i”);
var separator=uri.indexOf(“?”)!==-1?”&“:”;
if(uri.match(re)){
返回uri.replace(re'$1'+键+“=”+值+'$2');
}
否则{
返回uri+分隔符+键+“=”+值;
}
}

log(addOrUpdateQueryStringParameter('/test url',keepme',true))
如果要在客户端的所有页面中检查keepme变量,可以使用
localstorage
而不是查询字符串

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

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

函数addOrUpdateQueryStringParameter(uri、键、值){
var re=new RegExp(“([?&])”+key+“=.*(&$)”,“i”);
var separator=uri.indexOf(“?”)!==-1?”&“:”;
if(uri.match(re)){
返回uri.replace(re'$1'+键+“=”+值+'$2');
}
否则{
返回uri+分隔符+键+“=”+值;
}
}

log(addOrUpdateQueryStringParameter('/test url',keepme',true))
您可以在
DOMContentLoaded
事件中添加脚本,并将字符串添加到所有锚定标记中

window.addEventListener(“DOMContentLoaded”,函数(e){
var anchortags=document.querySelectorAll(“a”);
forEach固定标签(功能(标签){
如果(tag.hostname=='stackoverflow.com'| | tag.hostname==''){
tag.href=tag.href+'&keepme=true';
}          
});

},假)
您可以在
DOMContentLoaded
事件中添加脚本,并将字符串添加到所有锚定标记中

window.addEventListener(“DOMContentLoaded”,函数(e){
var anchortags=document.querySelectorAll(“a”);
forEach固定标签(功能(标签){
如果(tag.hostname=='stackoverflow.com'| | tag.hostname==''){
tag.href=tag.href+'&keepme=true';
}          
});

},假)您有后端访问权限吗?您可能会从请求中获取查询参数并将其返回到前端。不幸的是,不是只有javascript/jquery访问权限。您有后端访问权限吗?您可能会从请求中获取查询参数并将其返回到前端。不幸的是,不是这样,只有javascript/jquery访问。是的,localstorage是不允许的:(我们只需要查询字符串在当前网站上每个页面的URL中都可用。要么将其附加到所有
a
链接,要么截取链接单击或类似的内容Yeah Local Storage是不允许的:(我们只需要查询字符串在当前网站的每个页面的URL中可用。将其附加到所有
a
链接或拦截链接点击或类似操作。但这也会将它们附加到外部网站,它必须仅是当前域更新了答案。您可以检查URL是否包含您的域。)name我刚刚发现一个问题,如果URL只是
它不起作用…:/您可以使用主机名进行检查。请参阅更新的答案,该答案适用于页面上的所有正常链接,但我们有一些链接在加载DOMContent后呈现,这些链接上已经有查询字符串:
website.com/?string=sdjsijd#all
但这也会将它们附加到外部站点,它必须是当前域更新了答案。您可以检查url是否包含您的域名。我刚刚发现一个问题,如果url只是
它不起作用…:/页面上的普通链接中,但我们有一些在加载DOMContent后呈现的链接,这些链接上已经有查询字符串:
website.com/?string=sdjsijd#all