2010-06-07 3 views
3

comment puis-je ajouter des variables à une URL avec javascript sans naviguer vers l'URL?Javascript: comment puis-je ajouter des variables à l'url?

grâce

+1

Qu'est-ce que vous souhaitez réaliser par là? Si vous n'y accédez pas, l'URL ne sera pas l'URL représentant la ressource actuelle, et n'est donc pas différente de n'importe quelle ancienne chaîne. Dans ce cas, il suffit d'utiliser la fonctionnalité normale de concaténation de chaîne JS –

+0

mhm vous avez raison, je voudrais stocker cette chaîne dans l'URL, donc quand je clique sur un autre lien dans la page, ce paramètre est toujours ajouté au lien d'origine . – aneuryzm

Répondre

4

Vous pouvez modifier window.location.hash. Tout le reste entraînera une navigation.

+0

Et en modifiant '.hash', le navigateur doit sauter (naviguer, si vous voulez) dans la position du document correspondant (si elle est définie). – Tomalak

+0

@Tomalak: donc, si l'ancre n'est pas définie, le navigateur * apparaîtra * pour n'avoir navigué nulle part, n'est-ce pas? – Piskvor

+0

@Piskvor: Oui, il ne clignotera même pas. C'est une méthode assez éprouvée pour attacher des données à l'URL. Beaucoup de webapps le font. Gmail est un exemple. –

0

Je ne suis pas sûr, mais comment est-il avec cette ?:

document.url + myVar + 'myString'; 

Bien que Javascript est pas ma langue: P

6

Pour ajouter des variables au hachage (comme Matthew suggested), vous peut effectuer les opérations suivantes en JavaScript plaine:

window.location.hash = 'varA=some_value;varB=some_value'; 

Cela ajoutera #varA=some_value;varB=some_value à votre URL. Il n'actualisera pas la page à moins que la valeur de hachage soit égale à un nom d'ancre ou un ID d'élément dans le document.

Ensuite, pour vérifier si une valeur de hachage est présent, il suffit de faire ce qui suit:

var i, variables = window.location.hash.split(';'); 

if (variables.length > 0) { 
    // Variables present in hash 
    for (i = 0; i < variables.length; i++) { 
     keyValuePair = variables.split('='); 
     // keyValuePair[0] would be the key (variable name) 
     // keyValuePair[1] would be the value 
    } 
} 
else { 
    // No variables in the hash 
} 

Vous pouvez également vérifier le poste débordement de pile suivant sur les questions liées à la URL encoding de la partie de hachage dans différents navigateurs:

+0

Je suis sûr qu'il doit y avoir un 'encodage' encoder '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. – Tomalak

+0

@Tomalak: Oui, bon point ... Je répare mon exemple. –

Questions connexes