OSM tchoutchou

De Raildar
Aller à : navigation, rechercher

Sources disponibles sur github


leaflet-hash.js custom

Customisation de leaflet-hash pour permettre de gérer des arguments dans le HASH de la page en plus de ceux utilisés par le plugin (lat,lng,zoom). Les arguments sont formatés classiquement sauf qu'il commencent par # au lieu de ?

Sources :

leaflet-hash.js


Fonctions ajoutées

L.Hash.deserialize(hash)

Décode le hash et retourne un objet javascript contenant les différents arguments. Exemple le hash #lat=46.810&lng=6.880&zoom=6 retournera {'lat':'46.810','lng':'6.880','zoom':'6'}.

  • hash : Hash à parser. S'il n'est pas renseigné la fonction décode le hash de l'url directement.


L.Hash.serialize(obj)

Exact inverse de la fonction précédente, prend en entrée un objet javascript et retourne le hash correspondant. (Attention cette fonction ne modifie pas l'url, elle est généralement uniquement utilisée en interne).

  • obj : Objet a convertir en hash


L.Hash.setArg(name,value)

Modifie un argument ou l'ajoute au hash. Cette fonction met à jour le hash de l'url, un événement 'hashchange' sera levé avec l'argument external à false).

  • name : nom de la propriété à changer ou ajouter
  • value : valeur de la propriété à changer


L.Hash.removeArg(name)

Supprime du hash l'argument indiqué. Cette fonction met à jour le hash de l'url, un événement 'hashchange' sera levé avec l'argument external à false).

  • name : nom de l'argument à supprimer


L.Hash.replace = function(args)

Remplace le hash de la page par celui correspondant aux arguments indiqués. Cette fonction met à jour le hash de l'url, un événement 'hashchange' sera levé avec l'argument external à false).

  • args : object javascript décrivant les argument à indiquer dans le hash de l'url.


Événements

Il est possible de binder un événement jquery sur le body pour intercepter les modifications du hash :

$("body").on("hashchange",function(event,args,old_args,external){
   ...
});

Avec :

  • event : L'event Jquery (pas très utile ici)
  • args : Object contenant les argument extraits du hash
  • old_args : Ancien object args, avant le changement. Permet de comparer les deux pour détecter si un valeur particulière à changé.
  • external : boolean indiquant si le changement du hash est interne (modifié par l'appel d'une des méthodes ci-dessus) ou externe (par modification de l'url).