RSS Feed

location.hash in Objekt umwandeln

18.08.2009 by naden

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.


Keine Kommentare »

Noch keine Kommentare

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>