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:
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!
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
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:
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";
} |