cs_flexx
Messages postés42Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention18 août 2010
-
19 juil. 2005 à 11:59
cs_bultez
Messages postés13616Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
20 juil. 2005 à 09:12
Bonjour
J'ai créé une classe arbre (qui affiche une arborescence) avec des
méthodes comme ajouter(noeud), supprimer(noeud), dessiner()...
J'affiche cette arbre dans la partie gauche d'une page séparée en 2 frames.
Ce que je voudrais, c'est pouvoir appeler la fonction ajouter(noeud) à partir de la page de droite.
J'ai essayé de l'appeler en faisant parent.arbre.ajouter(noeud) (arbre
étant le nom de la frame de gauche) mais ça ne marche pas.
Comment faire ?
Et j'ai un autre petit problème.
Dans la méthode dessiner() de mon arbre, je fais des document.write("
").
Le problème, c'est que quand je veux redessiner mon arbre en appelant
dessiner() (par exemple, lorsque je clique sur un bouton), ma page
s'efface avant de redessiner l'arbre.
Du coup, le style que je pouvais avoir dans mon body n'est plus appliqué.
cs_bultez
Messages postés13616Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 20 juil. 2005 à 09:12
là aussi, ce sont les document.write
qui perturbent ( y compris IE ).
sans préjuger du résultat escompté...
( la POO me semble toujours d'une
lourdeur, d'une illisibilité ... ce n'est que
mon opinion, et elle ne vaut rien. )
<html>
<head>
<script type="text/javascript">
function Nombre(libelle, valeur){ // Constructeur
this.libelle = libelle;
this.valeur = valeur;
this.affiche = afficheNombre; }
var nb = new Nombre("toto", 14);
function afficheNombre(){ // Méthode d'affichage
document.body.innerHTML+="
Le nombre " + this.libelle + " vaut " + this.valeur + "
"; }
function reAffiche(){ // Fonction de réaffichage
document.body.innerHTML+="Avant";
nb.affiche();
document.body.innerHTML+="Avant"; }
</script>
</head>
cs_bultez
Messages postés13616Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 19 juil. 2005 à 12:12
Bonjour,
°sans préjuger de noeud
parent.arbre.ajouter(noeud)
c'est la bonne syntaxe,
l'erreur est ailleurs ?
°write, lorsque la page a été affichée
totalement, commence par effacer
cette page ( y compris les javascript,css ... )
il faut donc voir les choses autrement,
_dans un div,span... + innerHTML
_avec appendchild ...
Cordialement. Bul. ~
Site~~ [mailto:marcelBultez@tiscali.fr Mail ]~
cs_flexx
Messages postés42Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention18 août 2010 19 juil. 2005 à 16:31
Merci de ta réponse, Bul.
Saurais-tu pourquoi lors de l'appel à une page html ou php, une barre
de progression s'affiche parfois à moitié remplie dans le bas des
navigateurs, sans disparaître ni même progresser ? (ça donne
l'impression que la page n'est pas entièrement chargée, même lorsqu'il
n'y a quasiment rien dans la page).
cs_bultez
Messages postés13616Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 19 juil. 2005 à 16:50
dans la "barre de status" du navigateur ?
ça dépend de "plein plein" de choses,
qualité du FAI, saturation du réseau,
qualité du site, navigateur, la taille
des pages ( images,sons ... ), qualité des
scripts de la page (bof) , du langage (bof) ,
framework ou pas (java, .net...)
mais je suis loin d'être un spécialiste...
et est-ce bloquant ? ou la fenêtre
est-elle ok ? car il me semble bien
que cela m'arrive ( sans rien affirmer ),
et qu'en fait, tout va bien ( pas sûr ),
enfin ça finit par se régler...
cs_flexx
Messages postés42Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention18 août 2010 19 juil. 2005 à 17:12
En fait, ça me le fait même en local (avec easyphp).
Par contre, le code suivant (qui est un code de test) marche
correctement sous IE et se bloque sous Firefox (avec une barre de
progression à moitié remplie).
<html>
<head>
<script language="javascript">
var nb = new Nombre("toto", 14);
function Nombre(libelle, valeur){ // Constructeur
this.libelle = libelle;
this.valeur = valeur;
this.affiche = afficheNombre;
}
function afficheNombre(){ // Méthode d'affichage
document.writeln("
Le nombre " + this.libelle + " vaut " +
this.valeur + "
");