我只能做些有限的事情,因此很遗憾,cookie和local_storage并不是一个选择。
我正在寻找一种解决方案,以在网站的每个页面上保留特定的查询字符串...
假设查询字符串为: ?keepme=true
我认为最好的方法是修改每个具有指向当前域URL的<a>
标签,并修改链接以包含查询字符串?
任何建议将不胜感激。
答案 0 :(得分:1)
您可以在DOMContentLoaded
事件中添加脚本,并将字符串添加到所有定位标记
window.addEventListener("DOMContentLoaded", function(e) {
var anchortags = document.querySelectorAll("a");
anchortags.forEach(function(tag) {
if(tag.hostname == 'stackoverflow.com' || tag.hostname == ''){
tag.href = tag.href + '&keepme=true';
}
});
}, false);
答案 1 :(得分:0)
如果要在客户端的所有页面中检查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))