[RESOLU] Récupération d'une variable globale js dans une autre page

Petit nouveau ! | 7 Messages

25 nov. 2018, 11:35

Bonjour.
J'avais demandé conseil il y a peu, puis j'avais abandonné. Mais je voudrais y arriver, avec votre aide.
J'ai consulté des dizaines de pages évoquant précisément ce sujet et j'ai fait énormément d'essais.

Donc voilà mon problème : je ne parviens pas à récupérer la variable maliste qui a été déclarée sur la page d'accueil ou elle peut prendre plusieurs valeurs selon la liste choisie par l'utilisateur, ça fonctionne bien de ce côté là. Je vous soumets mon code, ce n'est pas une page unique, ce code doit figurer sur plus de cent pages. Pas de php, c'est pour faire un dvd en html. Merci d'avance !

Code : Tout sélectionner

<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Base de 001</title> <link rel="stylesheet" type="text/css" href="base.css"> </head> <body> <iframe src="" name="liste" title="liste" height="1200" width="25%"></iframe> <iframe src="001.htm" name="paroles" title="paroles" height="1200" width="48%"></iframe> <iframe src="001-audio.htm" name="pics" title="pics" height="1200" width="25%"></iframe> <script> window.onload = changeUrl() { document.getElementById("liste").src = maliste; } </script> </body> </html>
Elle a été déclarée ainsi sur la page d'accueil :

Code : Tout sélectionner

<head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Essai de variable</title> <link rel="stylesheet" type="text/css" href="liste.css"> <script> var maliste; function myFunctionpref() { maliste= "lpref.htm"; window.open("2-base.htm","_self") } function myFunctioncat() { maliste= "lcat.htm"; window.open("1-base.htm","_self") } </script> </head>
EDIT : J'ai vu depuis que j'employais getElementById alors que mes iFrames n'avaient pas d'id. J'ai corrigé ça, mais ça ne fonctionne toujours pas. J'ai cru cependant comprendre qu'un variable telle que je la déclarais était globale donc accessible durant la session. Mais peut-être qu'en changeant de page, la session s'arrête ?
J'ai lu aussi qu'il existe une méthode pour envoyer la variable de la page A vers la page B. Le problème est que j'ai une centaine de pages B....

Mammouth du PHP | 582 Messages

26 nov. 2018, 17:33

Salut, les variables javascript ne sont pas transmises d'une page à une autre (lorsque tu cliques un lien ou rafraichis la page).

En revanche tu as une page principale avec des iframes dedans. Tant que tu ne rafraichis pas la page principale mais juste les iframes, les variables de la page principales restent définies et sont donc accessibles. Par contre une page dans une iframe ne peut pas accéder juste comme ça à une variable de la page principale, il faut préfixer la variable par parent pour y accéder.

Tu devrais donc avoir quelque chose du style...
Dans la page principale :
var maliste = 'ta liste ???';

Et dans les pages chargées dans les iframes pour accéder à la variable maliste :
parent.maliste;

Pour modifier sa valeur:
parent.maliste = 'nouvelle valeur';

Mais je ne sais pas si ça te débloquera car ta demande n'est pour moi pas totalement clair.

Petit nouveau ! | 7 Messages

27 nov. 2018, 14:43

Salut, Saian !

Alors tel quel, ça n'a rien arrangé, mais j'ai réussi à reformuler mes pages autrement, et avec 'parent.', ça marche.
Merci de m'avoir fait découvrir ça. C'est pas facile de concevoir un site avec un langage qu'on découvre en même temps.
Heureusement, il y a les forums. Merci mille fois !

Petit nouveau ! | 7 Messages

27 nov. 2018, 19:24

Salut, Saian !

Alors tel quel, ça n'a rien arrangé, mais j'ai réussi à reformuler mes pages autrement, et avec 'parent.', ça marche.
Merci de m'avoir fait découvrir ça. C'est pas facile de concevoir un site avec un langage qu'on découvre en même temps.
Heureusement, il y a les forums. Merci mille fois !
EDIT : Quelques heures plus tard...
Tout baigne ! J'ai tout refait, tout fonctionne à la perfection. Un million de mercis à rajouter. Wow, je suis si content, après tous ces tâtonnements !

Mammouth du PHP | 582 Messages

28 nov. 2018, 16:36

Bravo =D>