location.hash in Objekt umwandeln
18. August 2009 | In: Javascript
Auch bei Webseiten, die auf Ajax setzen ist es oft notwendig Deeplinks zu bestimmen Seiten bereitzustellen. Da bietet es sich an, die entsprechenden Parameter im Hash-Bereit der Url unterzubringen – in location.hash.
Der Link könnte wie folgt aussehen /videos#status=1&item=23&type=9. Um aus dieser Information automatisiert ein Javascript-Objekt zu erzeugen habe ich eine kleine Hilfsfunktion geschrieben.
function getParamstringAsObject(s) { var params = {}, count = 0; $(s.split('&')).each(function(i, item) { var tokens = item.split('='); params[tokens[0]] = tokens[1]; count ++; }); return count == 0 ? null : params; } |
getParamstringAsObject wandelt alle Strings der Form status=1&item=23&type=9 … in ein Objekt um, wo jeder Wert vor einem = zum Key und der folgende Wert zum Inhalt wird.
Aus unserem String wird dieses Objekt:
{status:1, item:23, type:9} |
Die folgende Funktion erledigt nur noch eine Teilaufgabe und schneidet vor dem eigentlichen Funktionsaufruf das Hashmark vom Anhang von location.hash weg.
function getLocationHashAsObject() { return getParamstringAsObject(location.hash.substring(1)); } |
Das so erhaltene Obejct lässt sich praktisch weiterverarbeiten. Es direkt an einen Ajax-Call weitergereicht oder sonstwie genutzt werden.

Schreib einen Kommentar
Fülle das Kommentar-Formular vollständig aus oder melde dich über Twitter oder Facebook an.