Une méthode commode consiste à passer la ou les variable(s) dans l'URL de
la page demandée et à la/les récupérer à lors du chargement de cette page.
Au lieu de demander simplement le nom du fichier
page.html, on va demander quelque chose comme
page.html?var1='toto';var2=5;. Le navigateur
comprendra que ce qui suit le «?» est une requête spéciale.
Du côté de la page appelante, on va donc
var requete="var1='"+var1+"';var2="+var2+";" ; var1 qui vaut toto et
var2 qui vaut 5, on obtient
bien var1='toto';var2=5; .
Notez que c'est bien du javascript en fin de compte et qu'il a fallu rajouter
des quotes autour des noms des variables,
puisque ce sont des chaines de caractères)
requete = escape(requete) ;
window.location.href = "page.html?" + requete ; On passe maintenant sur le fichier page.html, où il
s'agit de récupérer var1 et
var2 .
var var1 = "défaut", var2 = 0 ; var requete = window.location.search ;
if (requete) {
requete=requete.substring(1) ;
requete = unescape(requete) ; eval(requete); }
} » final ferme le test
if (requete) ) On se retrouve alors dans notre exemple avec une variable
var1 contenant la chaine
toto et une variable
var2 valant 5.
On peut bien sûr s'y prendre autrement pour passer et récupérer ces variables, cette méthode a l'avantage d'être très simple à mettre en oeuvre.
Remarque : le
url-encodage est une technique de sécurité pour éviter
que des caractères spéciaux n'aillent se balader dans les noms de fichier
et entrainer des réactions désagréables du serveur.
L'inconvénient est que le script précédent ne marcherait pas directement
en local avec Explorer 5 (et sans
doute 4), qui, dans notre exemple, chercherait en vain un fichier
page.html?var1%3D%27toto%27%3Bvar2%3D5%3B sur le disque.
Il faudra donc désactiver provisoirement cet encodage/décodage lors des
mises au point en local.
(TOM)