Last active
August 19, 2020 09:17
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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