Manchmal möchte man URL-Parameter mit JavaScript auslesen. Für diesen Zweck habe ich im Artikel [post id=3396]Get GET-Parameters with JavaScript[/post] gezeigt, wie man eine Funktion schreibt, die der $_GET aus PHP ähnlich ist. Es geht aber auch noch anders. Es folgt ein zweites Beispiel.
JavaScript Code
function getParameter = function(key) { var query = window.location.search.substring(1); var pairs = query.split('&'); for (var i = 0; i < pairs.length; i++) { var pair = pairs[i].split('='); if(pair[0] == key) { if(pair[1].length > 0) return pair[1]; } } return undefined; }; var key = 'test'; var value = getParameter(key); if (value) alert(value); |
Bei einem Aufruf von etwa index.html?test=something
würde der Code Parameter: test, Value: something
anzeigen.
Etwas kryptischer aber dafür kürzer im Code:
// RegEx: http://stackoverflow.com/a/1404100/451634 function getURLParameter(name) { var value = decodeURIComponent((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, ""])[1]); return (value !== 'null') ? value : false; } var param = getURLParameter('test'); if (param) alert(param); |
Mit getURLParameter
können auch Werte wie %23
ausgewertet werden. Der Parameteraufruf ?test=%23
wird dann interpretiert zu #
.
Ich habe keine Ahnung!
Warum geht so etwas nicht:
var telefon = getURLParameter(‚tel‘);
window.location.href = „callto: $telefon“;