OSM tchoutchou
Sources disponibles sur github
Sommaire
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é par le plugin (lat,lng,zoom). Les argument sont formaté classiquement sauf qu'il commencent par #̀
au lieu de ?
Sources :
Fonctions ajoutées
L.Hash.deserialize(hash)
Décode le hash et retourne un objet javascript contenant les différents argument. Exemple la hash #lat=46.810&lng=6.880&zoom=6
retournera {'lat':'46.810','lng':'6.880','zoomz':'6'}
.
- hash : Hash à parser. S'il n'est pas renseigné la fonction décode la 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, cette fonction 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 a 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 a 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é. Cette fonction met a jour le hash de l'url, un événement 'hashchange' sera levé avec l'argument external à false).
- args : object javascript decrivant les argument à indiquer dans le hash de l'url.
Événements
Il est possible de binder un evenement 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).