OSM tchoutchou : Différence entre versions

De Raildar
Aller à : navigation, rechercher
(typos)
 
(2 révisions intermédiaires par le même utilisateur non affichées)
Ligne 3 : Ligne 3 :
  
 
= leaflet-hash.js custom=
 
= 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 <code>#̀</code> au lieu de <code>?</code>
+
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 <code>#</code> au lieu de <code>?</code>
  
 
== Sources : ==
 
== Sources : ==
Ligne 11 : Ligne 11 :
 
== Fonctions ajoutées ==
 
== Fonctions ajoutées ==
 
=== L.Hash.deserialize(hash) ===
 
=== L.Hash.deserialize(hash) ===
Décode le hash et retourne un objet javascript contenant les différents argument. Exemple la hash <code>#lat=46.810&lng=6.880&zoom=6</code> retournera <code>{'lat':'46.810','lng':'6.880','zoomz':'6'}</code>.
+
Décode le hash et retourne un objet javascript contenant les différents arguments. Exemple le hash <code>#lat=46.810&lng=6.880&zoom=6</code> retournera <code>{'lat':'46.810','lng':'6.880','zoom':'6'}</code>.
* '''hash''' : Hash à parser. S'il n'est pas renseigné la fonction décode la hash de l'url directement.
+
* '''hash''' : Hash à parser. S'il n'est pas renseigné la fonction décode le hash de l'url directement.
  
  
 
=== L.Hash.serialize(obj) ===
 
=== 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).
+
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
 
* '''obj''' : Objet a convertir en hash
  
  
 
=== L.Hash.setArg(name,value)===
 
=== 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''').
+
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
 
* '''name''' : nom de la propriété à changer ou ajouter
 
* '''value''' : valeur de la propriété à changer
 
* '''value''' : valeur de la propriété à changer
Ligne 27 : Ligne 27 :
  
 
===L.Hash.removeArg(name)===
 
===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''').
+
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
 
* '''name''' : nom de l'argument à supprimer
  
  
 
===L.Hash.replace = function(args)===
 
===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''').
+
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 decrivant les argument à indiquer dans le hash de l'url.
+
* '''args''' : object javascript décrivant les argument à indiquer dans le hash de l'url.
  
  
 
== Événements==
 
== Événements==
Il est possible de binder un evenement jquery sur le body pour intercepter les modifications du hash :  
+
Il est possible de binder un événement jquery sur le body pour intercepter les modifications du hash :  
 
<pre>
 
<pre>
 
$("body").on("hashchange",function(event,args,old_args,external){
 
$("body").on("hashchange",function(event,args,old_args,external){
Ligne 45 : Ligne 45 :
  
 
Avec :  
 
Avec :  
* '''event''' : L'event Jquery (pas tres utile ici)
+
* '''event''' : L'event Jquery (pas très utile ici)
 
* '''args''' : Object contenant les argument extraits du hash
 
* '''args''' : Object contenant les argument extraits du hash
* '''old_args''' : Ancien object args, avant le changement . Permet de comparer les deux pour detecter si un valuer particuliere à changé.
+
* '''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'appele d'une des méthodes si dessus) ou externe (par modification de l'url).
+
* '''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).

Version actuelle en date du 13 janvier 2014 à 19:56

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).