Skip to content

Instantly share code, notes, and snippets.

@julzhk
Last active August 19, 2020 09:17
Show Gist options
  • Save julzhk/4fa3a16ac6fda6c57da4d1b09ebef625 to your computer and use it in GitHub Desktop.
Save julzhk/4fa3a16ac6fda6c57da4d1b09ebef625 to your computer and use it in GitHub Desktop.
pass on url parameters: append all url parameters from the visited page to every anchor tag in that page
<script>
var getParams = function (url) {
var params = {};
var parser = document.createElement('a');
parser.href = url;
var query = parser.search.substring(1);
var vars = query.split('&');
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split('=');
if (typeof (pair[1]) !== 'undefined') {
params[pair[0]] = decodeURIComponent(pair[1]);
}
}
return params;
};
var encodeQueryData = function (data) {
const ret = [];
for (let d in data)
ret.push(encodeURIComponent(d) + '=' + encodeURIComponent(data[d]));
return ret.join('&');
}
let visit_params = getParams(window.location.href);
let links = document.getElementsByTagName('a');
function what_j(u) {
let joiner = ''
if (u.indexOf('?') === -1) {
joiner = '?'
} else {
joiner = '&'
}
return joiner;
}
for (var i = 0; i < links.length; i++) {
let joiner = what_j(links[i].href);
let encoded_params = encodeQueryData(visit_params);
if (encoded_params.length > 0) {
links[i].href = links[i].href + joiner + encoded_params
}
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment