IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Static variable onReload


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 58
    Points
    58
    Par défaut Static variable onReload
    Bonjour,

    Tout est dans le titre (ou presque) ...

    J'aimerais pouvoir conserver une valeur après le reload de ma page.

    Cette valeur sera appelée par une fonction javascript.


    Ca parait simple... mais n'étant pas un spécialiste javascript cela est assez "ardu" pour moi.

    Merci de votre aide.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    il te suffit de passer cette valeur en paramètre dans l'url.
    Tu pourras ensuite la récupérer en JS dans la nouvelle page ...

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 58
    Points
    58
    Par défaut
    Merci pour votre réponse....

    j'ai un autre problème maintenant

    J'ai réutilisé le code d'un site permettant d'afficher des onglets et d'y mettre du contenu dedans. Chaque onglet contien un url avec un parametre propre a lui (d'ou ma question precedente)..... J'ai reussi a affecter a chaque onglet une url, mais maintenant lorsque que je click sur l'onglet il y a 2 reload je ne vois pas pourquoi ....

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    <script type="text/javascript">	
     
        function getChildElementsByClassName(parentElement, className)
        {
    	    var i, childElements, pattern, result;
    	    result = new Array();
    	    pattern = new RegExp("\\b"+className+"\\b");
     
     
    	    childElements = parentElement.getElementsByTagName('*');
    	    for(i = 0; i < childElements.length; i++)
    	    {
    		    if(childElements[i].className.search(pattern) != -1)
    		    {
    			    result[result.length] = childElements[i];
    		    }
    	    }
    	    return result;
        }
     
        function getUrl(){
     
           var path = window.location.href;
           var fullurllength  = window.location.href.length -1 ;   
           var urlWithoutId = path.substr(0,fullurllength);
     
           return urlWithoutId;
        }
     
        function getParam(){
     
           var path = window.location.href;
           var fullurllength  = window.location.href.length -1 ;   
           var param = path.substr(fullurllength,1);
     
           return param;
        }
     
     
     
     
        function BuildTabs(containerId)
        {
    	    var i, tabContainer, tabContents, tabHeading, title, tabElement, fullPath;
    	    var divElement, ulElement, liElement, tabLink, linkText;
     
    	    // assume that if document.getElementById exists, then this will work...
    	    if(! eval('document.getElementById') ) return;
     
    	    tabContainer = document.getElementById(containerId);
    	    if(tabContainer == null)
    		    return;
     
    	    tabContents = getChildElementsByClassName(tabContainer, 'tab-content');
    	    if(tabContents.length == 0)
    		    return;
     
    	    divElement = document.createElement("div");
      	    divElement.className = 'tab-header'
      	    divElement.id = containerId + '-header';
    	    ulElement = document.createElement("ul");
      	    ulElement.className = 'tab-list'
     
    	    tabContainer.insertBefore(divElement, tabContents[0]);
    	    divElement.appendChild(ulElement);
     
     
    //           var path = window.location.href;
    //           var fullurllength  = window.location.href.length -1 ;   
     
    //           var urlWithoutId = path.substr(0,fullurllength);
     
    	    for(i = 0; i < tabContents.length; i++)
    	    {
    		    tabHeading = getChildElementsByClassName(tabContents[i], 'tab');
    		    title = tabHeading[0].childNodes[0].nodeValue;
     
    		    // create the tabs as an unsigned list
    		    liElement = document.createElement("li");
    		    liElement.id = containerId + '-tab-' + i;
     
    		    tabLink = document.createElement("a");
    		    linkText = document.createTextNode(title);
     
    		    tabLink.className = "tab-item";
     
    		    tabLink.setAttribute("href",getUrl() + i);
    		    tabLink.setAttribute( "title", tabHeading[0].getAttribute("title"));
    		    tabLink.onclick = new Function ("ActivateTab('" + containerId + "', " + i + ")");
     
    		    ulElement.appendChild(liElement);
    		    liElement.appendChild(tabLink);
    		    tabLink.appendChild(linkText);
     
    		    // remove the H1
    		    tabContents[i].removeChild
    	    }
        }
     
        function ActivateTab(containerId, activeTabIndex)
        {
    	    var i, tabContainer, tabContents;
     
    	    tabContainer = document.getElementById(containerId);
    	    if(tabContainer == null)
    		    return;
     
    	    tabContents = getChildElementsByClassName(tabContainer, 'tab-content');
    	    if(tabContents.length > 0)
    	    {
    		    for(i = 0; i < tabContents.length; i++)
    		    {
    			    tabContents[i].className = "tab-content";
    			    tabContents[i].style.display = "none";
    		    }
     
    		    tabContents[activeTabIndex].style.display = "block";
     
     
        		tabList = document.getElementById(containerId + '-list');
    		    tabs = getChildElementsByClassName(tabContainer, 'tab-item');
    		    if(tabs.length > 0)
    		    {
    			    for(i = 0; i < tabs.length; i++)
    			    {1
    				    tabs[i].className = "tab-item";
    			    }
     
    			    tabs[activeTabIndex].className = "tab-item tab-active";
    			    tabs[activeTabIndex].blur();
    		    }
    	    }
        }
     
     
        BuildTabs('tab-container');
        ActivateTab('tab-container', getParam());
     
    </script>
    J'ai crée les fonction getUrl() et getParam() ... mais cela reste de la bidouille.... j'aimerais juste éviter le reload de la page

    merci pour toute aide...

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    j'ai peut être lu trop vite, mais je ne vois rien dans cette partie qui pourrait déclencher ne serait-ce qu'un reload

    A+

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Sous IE on peut utiliser des variables navigator


    sinon faut passer pas les cookies ou les passage de variables dans l'url ou un popup ou un iframe caché ou encore ajax ou des vraibles de session ...

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Sous IE on peut utiliser des variables navigator


    sinon faut passer pas les cookies ou les passage de variables dans l'url ou un popup ou un iframe caché ou encore ajax ou des vraibles de session ...
    Oui, oui (fait), mais en quoi ça empêchera ce second reload dont on ne voit pas de trace ici ?

    A+

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ben teste si tu as des params dans l'url avant de relaoder ...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 58
    Points
    58
    Par défaut
    Merci pour votre aide.

    Pour détailler le scénario:

    1- Mes onglets ont bien la bonne adresse.
    2- je click dessus l'onglet désiré s'affiche correctement.
    3- MAIS... l'URL ne prend pas tout de suite la bonne adresse. Elle la prend seulement après une demi-seconde, et ensuite reload la page.


    Voila comment ca se passe.....

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    C'est à peu près ce que j'avais compris.

    Mais le changement de page ne se fait pas via la partie du code que tu nous donnes.

    Pas possible donc de voir pourquoi il y a un 2° reload (ni bien sûr de l'éviter) ...

    A+

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 58
    Points
    58
    Par défaut
    C'est du code javascript inséré dans une page aspx ....

    Il y aurait un relaod javascript et un autre (plus lent je ne sais pas) ASP.NET ??

  11. #11
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Arf !!
    ASP.NET

    Il fait sûrement plein de trucs sans que tu lui ais demandés (ou réalisé que tu lui avais demandé).

    Cherche plutôt de ce côté là

    A+

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Points : 58
    Points
    58
    Par défaut
    Effectivement le problème venait du temps de traitement de la partie asp.

    Cependant je ne connais pas réellement le séquencement, ni pourquoi un reload se produisait .....

    J'ai donc "allegé" mon code asp, et maintenant l'impression de reload ne se voit pas...

    Je vais peut-etre également ajouter un léger timer coté javascript pour retarder la redirection....

    Merci pour votre aide !

    (je mettrai résolu dans le cas ou je n'obtiens pas plus de réponse à ce problème)

Discussions similaires

  1. erreur no static variable canot referenced from static context
    Par yacin87 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 27/03/2010, 18h36
  2. Variable static => variable de classe?
    Par JMLLB dans le forum Langage
    Réponses: 7
    Dernier message: 20/11/2006, 16h28
  3. [FOP] [ERROR] non-static variable this cannot be referenced from a static context
    Par cash3000 dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/05/2006, 16h46
  4. erreur: non-static variable
    Par semaj_james dans le forum Langage
    Réponses: 3
    Dernier message: 30/01/2006, 15h56
  5. [debutant] non static variable
    Par Battosaiii dans le forum Langage
    Réponses: 1
    Dernier message: 10/12/2005, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo