Hallo,
ich möchte eine URL in ihre Einzelteile zerlegen und beim öffnen des Dokuments ausgeben. (z. B. http://www.example.com?test=asdf&test2=jklw)
Das Resultat soll folgendermaßen aussehen:
http://www.example.com
test=asdf
test2=jklw
Hier der Code soweit.
href und erste Scriptzeile ist zur Kontrolle der URL gedacht. Leider klappt die Ausgabe bei 'results' nicht.
Wenn ich die URL über eine Input-Box manuell eingebe dann funktionierts, es soll aber beim öffnen der Datei schon passieren.
Danke für eure Hilfe
Code
<body>
<p id="href"></p>
<script>
document.getElementById("href").innerHTML = "Ganze URL:<br>" + window.location.href;
var alles = window.location.href
function getAllUrlParams(url) {
var queryString = url ? url.split('?')[1] : window.location.search.slice(1);
var obj = {};
if (queryString) {
queryString = queryString.split('#')[0];
var arr = queryString.split('&');
for (var i = 0; i < arr.length; i++) {
var a = arr[i].split('=');
var paramName = a[0];
var paramValue = typeof (a[1]) === 'undefined' ? true : a[1];
if (paramName.match(/\[(\d+)?\]$/)) {
var key = paramName.replace(/\[(\d+)?\]/, '');
if (!obj[key]) obj[key] = [];
if (paramName.match(/\[\d+\]$/)) {
var index = /\[(\d+)\]/.exec(paramName)[1];
obj[key][index] = paramValue;
} else {
obj[key].push(paramValue);
}
} else {
if (!obj[paramName]) {
obj[paramName] = paramValue;
} else if (obj[paramName] && typeof obj[paramName] === 'string'){
obj[paramName] = [obj[paramName]];
obj[paramName].push(paramValue);
} else {
obj[paramName].push(paramValue);
}
}
}
}
return obj;
}
var params = document.getElementById('alles');
var results = document.getElementById('results');
function asdf(alles) {
params.innerText = this.value;
results.innerText = JSON.stringify(getAllUrlParams("http://www.example.de/?" + this.value), null, 2);
}
;
</script>
<span id="params"></span>
<pre id="results">{}</pre>
</body>
Alles anzeigen