Erreur Javascript

[Résolu/Fermé]
Signaler
-
 Mitsumi -
Bonjour à tous,

mon problème est simple, je dois développer un simple explorateur en Python/html/javascript et j'ai créé la page qui suit.

Malheureusement ma fonction java ne marche pas au niveau de document.getElementById(rep).style.display = "none";
Si je l'enlève, tout fonctionne mais les DIV ne peuvent donc pas être visibles. La console Javascript sous Firefox me dit "has no properties" au sujet de l'erreur précédente.
Ca va faire un jour que je cherche partout, je désespère de trouver de l'aide...

La page:

#!/usr/bin/env python
import cgi
import re, os, sys


def parcours(repertoire):
fichiers =os.listdir(repertoire)
for fichier in fichiers :
resultat = re.search("^([^.]+)$", fichier)
if resultat:
print "<div style='padding: 10px'>"
#print "<a href='contenu.cgi?adress="+repertoire+'/'+fichier+"' target='principal' onclick:test()>" "<img src='../../rubon15.png' border='0' width='33'/>"+fichier+"</a>"
print "<A HREF='javascript:verif(\""+repertoire+'/'+fichier+"\")'><img src='../../rubon15.png' border='0' width='33'/>"+fichier+"</A>"
print "</div>"
if not resultat.group(1) == "william" :
print "<div id:\""+repertoire+'/'+fichier+"\"; style='padding-left:20px ; display:none'>"
parcours(repertoire+'/'+fichier)
print "</div>"

print """Content-type: text/html


<html>
<head>

</head>
<body>

<SCRIPT language="JavaScript">


function verif(rep)
{
document.getElementById(rep).style.display = "none";
parent.principal.window.location="contenu.cgi?adress="+rep;
}

</SCRIPT>


<A HREF="javascript:test('/home/william')">Cliquez ici</A>



"""
parcours("/home/william")

print """


</body>
</html>"""

6 réponses

Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 356
Bonjour,

Je pense que le code correct devrait être le suivant:

function verif(rep) 
{ 
document.getElementById(rep).style.display = none; 
parent.principal.window.location="contenu.cgi?adress="+rep; 
} 


c-à-d supprime les "" avant et après none

A plus
Il y a de quoi chercher ! Essayer avec et sans guillemets !
peut-être

document.getElementById("rep").style.display = 'none';
ou encore
document.getElementById(rep).style.display = 'block';

J'ai déjà vu
document.getElementById(rep).style.visibility = " ";
document.getElementById(rep).style.display = ";

ou encore
<style>
.visible
{display:inline}
</style>
etc......
function(afficher)
{document. getElementById(rep).className="visible"}

Où est-ce écrit id= "rep" ? Est-ce à un div ?
Est-ce que "function verif(rep)" est un id ? hum !
D'abord excusez moi pour le temps de réponse, mais je suis en fac et j'étais très pris.

Ensuite j'ai déja corrigé une bêtise : je faisais un .display : none alors que le div était deja à none.

Enfin la valeur de l'id n'était pas vraiment la bonne, mais même en l'entrant un brut ca ne change rien.

Je vous en pris c'est a se taper la tete contre les murs ca...
Toujours pas de solution, j'ai testé en faisant ca :



<html>
<head>
<style type="text/css">
body
{
background: url(http://ooodocs.sourceforge.net/graphics/1.1/ooo1.1-elements-background_v1.png fixed no-repeat;
}
</style>
</head>

<body>
<SCRIPT language="JavaScript">


function cacher()
{
window.document.getElementById('toto').style.display = 'none';
}

</SCRIPT>

<div id="toto" style:inline>
<a href=javascript:cacher()> cache </a>
</div>
</body>

</html>




Et ca ca marche, mais faire une script comme ca :





#!/usr/bin/env python
import cgi
import re, os, sys


def parcours(repertoire):
fichiers =os.listdir(repertoire)
for fichier in fichiers :
resultat = re.search("^([^.]+)$", fichier)
if resultat:
print "<div style='padding: 10px'>"
#print "<a href='contenu.cgi?adress="+repertoire+'/'+fichier+"' target='principal' onclick:test()>" "<img src='../../rubon15.png' border='0' width='33'/>"+fichier+"</a>"
print "<A HREF='javascript:verif(\""+repertoire+'/'+fichier+"\")'><img src='../../rubon15.png' border='0' width='33'/>"+fichier+"</A>"
print "</div>"
if not resultat.group(1) == "william" :
print "<div id:\""+repertoire+'/'+fichier+"\"; style='padding-left:20px ; display:inline'>"
parcours(repertoire+'/'+fichier)
print "</div>"
#\""+repertoire+'/'+fichier+"\"
#"/home/william/Pluggin/install_flash_player_9_linux"
#alert(rep);
#document.getElementById(1).style.display = block;

print """Content-type: text/html


<html>
<head>



<link rel='stylesheet' type='text/css' href='style.css' />
</head>
<body>

<SCRIPT language="JavaScript">


function verif(rep)
{
window.document.getElementById(rep).style.display = 'block';
alert(rep);
parent.principal.window.location="contenu.cgi?adress="+rep;
}

</SCRIPT>




"""
parcours("/home/william")

print """Content-type: text/html

<div id="toto" style:inline>
<a href=javascript:javascript:vérif('toto')> cache </a>
</div>
</body>
</html>"""




Pas de résultat. Ai je une erreur au niveau de la déclaration du div? Au niveau du GetElementById?

Je rapelle aussi que l'erreur de la console java est "has no properties" en parlant de ca : "window.document.getElementById(rep).style.display = 'block';"
Messages postés
1263
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 356
Bonjour,

Si tu changes ton code <div id.......> </div> par le code suivant, celà devrait fonctionner:

<div id="toto" style:inline>
<a href="#" onclick="verif('toto')"> cache </a>
</div>


A plus
Merci pour votre aide, mais j'ai trouvé enfin la solution : je sais pas pourquoi mais il fallait que j'écrive <DIV id : ... >

Tout ca pour une histoire de ":"... suis blazé....