Erreur Javascript

Résolu/Fermé
Mitsumi - 12 déc. 2007 à 14:19
 Mitsumi - 19 déc. 2007 à 15:17
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

Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 383
12 déc. 2007 à 14:33
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
0
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 !
0
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...
0
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';"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Christounet Messages postés 1264 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 383
17 déc. 2007 à 10:39
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
0
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é....
0