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 :

javascript comporetement bizare!


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut javascript comporetement bizare!
    Bonjour,

    Je me casse la tête avec le pb suivant:j'ai une function js dont le role est de cacher un div. cette fontion je l'appelle d'une autre function js.
    voici le code de ma function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function hideloading()
    {
    		var nava = (document.layers);
    		var dom = (document.getElementById);
    		var iex = (document.all);
    		if (nava) { cach = document.cache }
    		else if (dom) { cach = document.getElementById("cache").style }
    		else if (iex) { cach = cache.style }
    		simplereturn()
    		alert('will work!')/*alert est necessaire si on veut appeller hideloading() depuis une autre fct js*/
    		cach.visibility = "hidden"
    }
    le pb que j'ai est que le style change en hidden si alert('will work!') existe, mais rien ne se passe si je l'enleve!!
    Mais si j'appelle ma fonction hideloading() directement et sans utiliser alert('will work!') cela fonctionne sans pb! alors je me demande ce que alert('will work!') a comme effet sur l execution de hideloading() une fois on l appelle depuis une autre fonction js.

    Merci pour tout aide!

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Et en mettant des ";" à la fin des instructions ?

    ERE

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut,
    Tout d'abord, ton code est particulièrement obsolète puisque actuellement, on peut considérer que tous les navigateurs reconnaissent
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("cache").style
    donc ta fonction deviendrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function hideloading()
    {
    		var cach = document.getElementById("cache").style;
    		simplereturn();
    		alert('will work!') //alert est necessaire si on veut appeller hideloading() depuis une autre fct js
    		cach.visibility = "hidden";
    }
    Ensuite, pour pouvoir répondre à ta question, il serait nécessaire de savoir ce que fait ta fonction simplereturn().

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut simplereturn et point-virgules
    Bonjour,

    Merci pour vos réponses,
    La fonction simplereturn() ne sert à rien, vous pouvez considérer comme si elle n existe pas.
    J'ai essayé d'ajouter des ";" mais tjr le même problème.
    Alors? une lueure au bout du tunnel?

    Merci

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    cette fontion je l'appelle d'une autre function js.
    Laquelle ?
    D'après ce que je comprends, tu ne nous montres que la partie qui fonctionne !

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut Réponse sur la fonction faisant l'appel
    Bonjour,

    voici la fct faisant appel, dans cette version j'ai mis directement le code
    document.getElementById("cache").style.visibility = "hidden" ;
    Mais cela ne marche pas: je rexplique:
    sur ma page index j'ai:

    chargement de la fct ajaxpage(..), un div "cache" contenant "chargement en cours" avec visibility = "hidden"
    la fct showloading(); qui affiche mon div "cache"
    des liens type href= "ajaxpage('mapage.php', 'id_conteneur')"
    en fin de index je fais appel à document.getElementById("cache").style.visibility = "hidden" ;

    En effet, lors du chargement de la page index, le msg "chargement en cours" s'affiche puis disparait à la fin du chargement de la page.
    lorsque je clique sur un lien faisant appel à ajaxpage(..) le msg "chargement en cours" réapparait mais reste tjr visible. Si j'ajoute alert('un message') dans ajaxpage(..) tout se remet à l'ordre!!
    Voir le code de ajaxpage(..)

    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
    function ajaxpage(url, containerid)
    {
    	showloading();
    	var page_request = false
    	if (window.XMLHttpRequest) // if Mozilla, Safari etc
    		page_request = new XMLHttpRequest()
    	else if (window.ActiveXObject)
    	{ // if IE
    		try 
    		{
    			page_request = new ActiveXObject("Msxml2.XMLHTTP")
    		} 
    		catch (e)
    		{
    			try
    				{
    					page_request = new ActiveXObject("Microsoft.XMLHTTP")
    				}
    			catch (e){}
    		}
    	}
    	else
    		return false
    	page_request.onreadystatechange=function()
    	{
    		loadpage(page_request, containerid)
    		showloading();
    	}
     
     
    	if (url.indexOf("?")==-1)
    		url = url+'?'+rnd();
    	else
    		url = url+'&'+rnd();
    		page_request.open('GET', url , true)
    		page_request.send(null)
    	/*alert('Si j'ajoute cette fct alert alors l'instruction suivante aura comme effet de cacher mon div de chargement en cours sinon rien ne se passe!!')*/	
    	document.getElementById("cache").style.visibility = "hidden";	
    }

Discussions similaires

  1. Les meilleurs livres pour apprendre le JavaScript
    Par vermine dans le forum Livres
    Réponses: 23
    Dernier message: 10/06/2019, 18h58
  2. JavaScript<---->ActionScript
    Par crazypiou dans le forum Flash
    Réponses: 21
    Dernier message: 17/04/2009, 17h14
  3. [CKEditor] Fckeditor [v 2.6] sous Firefox ajoute du code javascript bizare au contenu de la page
    Par ghaliloo dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 01/08/2008, 09h26
  4. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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