En passant plusieurs de hachage comme les paramètres dans l'url
Je suis en construction d'un site web dynamique à l'aide de jQuery et Ajax. J'ai résolu le problème de l'histoire et bouton de retour à l'aide de la Histoire Plugin. Je veux passer plusieurs hachage comme les paramètres dans l'url sans avoir à recharger toute la page, cliquez sur événements. Je veux quelque chose comme:
something.php#type=abc&id=123
ousomething.php/?type=abc&id=123
...
Qui pourrait être la meilleure manière de transmettre et de récupérer ces un peu de paramètres dans l'url?
<a href="#type=abc&id=123">Click</a>
if(type==abc && id==123)
{
do this..
}
Normalement nous faisons cela, <a href="something.php?type=abc&id=123">Click</a>
mais il recharge la page entière.
Vous devez vous connecter pour publier un commentaire.
La valeur de hachage dispose d'un nombre limité de caractères qui, techniquement, ne sont autorisés à être en elle. Si vous regardez la URL spec ici, la valeur de hachage est appelé un fragmentid. Voici la grammaire pour ce qu'il peut contenir:
Vous remarquerez que vous pouvez avoir
&
, mais pas=
sauf si vous appelez encodeURIComponent et decodeURIComponent sur la valeur de hachage lors de la configuration ou de la récupérer.Que pour la technique à utiliser, c'est vraiment à vous. Vous pouvez faire votre propre petite syntaxe de la valeur de hachage si vous avez besoin de représenter les multiples paramètres. Personnellement, je serais probablement séparer les valeurs par
&
tout comme dans la chaîne de requête, mais l'utilisation-
au lieu de=
.-
avec=
. En fait, cela la rendrait moins sémantique.En termes d'Uri, vous pouvez faire ce que vous demandez.
@jfriend00 est correct dans le sens que vous ne pouvez pas utiliser le "=" dans le nom/valeur d'une valeur de hachage, cependant, je pense qu'ils ont mal lu la spec de ce que signifie réellement. Vous aussi vous ne pouvez pas utiliser le caractère "=" dans le nom/valeur dans la chaîne de requête de l'URL. Pourquoi? Parce qu'il a un sens particulier en désignant une paire clé/valeur. Il sert le même but dans la table de hachage (aka fragmentid), ce qui est exactement la façon dont vous l'utilisez dans votre exemple.
Si vous regardez la w3.org page pour les médias fragments, la troisième phrase, les états:
Avis il est dit que vous pouvez utiliser des paires clé/valeur pour les deux la requête et le hachage partie d'un URI. Si vous regardez plus bas dans la page, vous trouverez qu'il décrit le format exactement comme vous l'utilisez dans le fragmentid:
Cela étant dit, le JavaScript n'ont pas un moyen intégré pour accéder à l'paires clé/valeur dans une manière structurée (tout comme il ne dispose pas d'un moyen intégré pour l'accès des paires clé/valeur de la chaîne de requête). Donc, vous devez construire votre propre fonction pour le faire, et il ya un couple d'autres posts sur StackOverflow qui montrent comment le faire:
<a href="#type=abc&id=123">Click</a>
". Ma réponse est littéralement dire, oui, vous pouvez faire exactement ce que vous avez proposé en utilisant le fragment que link href, au lieu d'utiliser la chaîne de requête de l'URL, et ainsi ne pas avoir à recharger la page que la modification de la chaîne de requête dans l'URL ne.