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 :

Firefox : liens + rechargement de la page


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Par défaut Firefox : liens + rechargement de la page
    Bonjour, j'ai un petit soucis de débutante en javascript.

    Je fais un lien qui appelle une fonction qui doit mettre à jour des données de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="mafonction()">monlien</a>
    Cette page initialise également plusieurs variables du script lors de son affichage.

    Sous IE, pas de problème. La fonction s'execute et la page est mise à jour.
    Mais sous Firefox, tout est réinitialisé lors du clic sur le lien. J'ai l'impression que dès qu'on clic sur un lien, il recharge entièrement la page.

    Y a t'il quelque chose à faire de particulier pour Firefox pour qu'il ne recharge pas entièrement la page mais qu'il réagisse comme IE ?

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    sur un <a href>, si le onclick retourne true, le lien sous href est suivi, si le onclick retourne false, le lien n'est pas suivi, c'est comme si le user n'avait pas cliquer sur le lien...
    Je te laisse déduire...

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    l'idéal étant tout de même de ne pas utiliser un lien pour autre chose qu'un changement de page!
    si tu tiens à l'apparence "link", définis ton curseur à pointer en passant sur l'élément;

  4. #4
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Par défaut variable perdu ?
    Merci de votre aide, ça m'a permi de découvrir que l'erreur était ailleurs. Mais par contre c'est encore pire

    Le mieux est encore que je vous donne le script.
    C'est un exercice de cours, donc n'essayez pas de comprendre l'utilité de la chose

    Voici le html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
    	<head>
    		<script src="fonctions.js"></script>
    	</head>
     
    	<body>
    		<div>Notes des élèves</div>
    		<script>
    			init_tableau();
    		</script>
    		<div style="cursor:pointer;" onclick="affichage_tableau();">Actualiser le tableau</div>
    	</body>
    </html>
    et le javascript :

    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
    var tabeleve ;
     
    function init_tableau()
    {
    	tabeleve = new Array(); //déclaration d'un tableau dont le nb d'élèves n'est pas défini
    	var i;
     
    	// boucle qui cree pour chaque ligne un tableau de 3 elements
    	for(i=0;i<4;i++)
    		tabeleve[i]=new Array(3);
     
    	//initialisation du tableau
    	tabeleve[0]=["Dupond","Pierre",""];
    	tabeleve[1]=["Lemenach","Franky",""];
    	tabeleve[2]=["Coloj","Matthieu",""];
    	tabeleve[3]=["Gelino","Laetitia",""];
     
    	affichage_tableau() ;
    }
     
     
     
    function affichage_tableau()
    {
    	document.write("<table border=1>");
    	document.write("<tr><td>Nom de l'élève</td><td>Prenom de l'élève</td><td>Note</td>"); //entête du tableau
     
    	var i;
    	for(i=0;i<tabeleve.length;i++)
    	{
    		document.write("<tr><td>" + tabeleve[i][0] + "</td>");
    		document.write("<td>" + tabeleve[i][1] + "</td>");
    		document.write("<td id=" + i + " onMouseOver=ajout_note(" + i + ");>" + tabeleve[i][2] + "</td></tr>");
     
    	}
    	document.write("</table>");
    	return(false);
    }
     
     
     
    function ajout_note(indice)
    {
    	if(tabeleve[indice][2]=="")
    	{
    		tabeleve[indice][2]=prompt("Saisissez la note de l'élève "+tabeleve[indice][0]+" "+tabeleve[indice][1],"");
    		document.getElementById(indice).innerHTML=tabeleve[indice][2];
    	}
    	return(false);
    }

    Le problème : quand on clic sur le lien pour actualiser le tableau (oui, ce lien est inutile, mais ce n'est pas le problème ), la console javascript de Firefox me dit "tabeleve is not defined line 29" alors que je l'ai déclarée en global et que ca marche bien lors de l'affichage initial de la page. IE me dit la même chose en mois précis (genre "object required")

    Je lutte depuis des heures avec ce script tout bête et le truc est à rendre pour demain
    Siou plait, aidez moi !

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    tu utilises mal la méthode write! elle est essentiellement destinée à insérer une chaîne dans un document distinct (voir window.open(); document.open();document.write();document.close());

    éventuellement, tu peux t'en servir pour générer une chaîne dans le document en cours, quand la page n'est pas encore chargée;

    comme ta fonction est lancée dans le flux de la page, sans gestionnaire d'événement, ça marche, la première fois... mais quand tu rappelles la fonction, document.write t'ouvre implicitement un nouveau document... qui ignore tout du tableau déclaré dans function init_tableau()

  6. #6
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 11
    Par défaut
    Ok merci beaucoup. Je vais donc faire ça avec du DHTML avec getElementByID.

Discussions similaires

  1. firefox : rechargement d'une page
    Par menuge dans le forum Firefox
    Réponses: 4
    Dernier message: 16/05/2006, 16h49
  2. 2 types de lien sur une seule page
    Par MiJack dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 06/10/2004, 09h02
  3. [JSP][servlet]rechargement de la page
    Par deldin dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 09/06/2004, 12h14
  4. lien sur une même page asp
    Par Redouane dans le forum ASP
    Réponses: 4
    Dernier message: 10/03/2004, 15h53
  5. Réponses: 2
    Dernier message: 06/03/2003, 16h37

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