Appel de fonction à partir d'une autre page

Résolu
cs_flexx Messages postés 42 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 18 août 2010 - 19 juil. 2005 à 11:59
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 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é.



Merci d'avance

7 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
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>

nb.affiche();
</script>


</html>

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
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
]~
0
cs_flexx Messages postés 42 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 18 août 2010
19 juil. 2005 à 13:42
Merci de ta réponse.



Donc on peut appeler une fonction à partir d'une autre page.

En fait, j'avais essayé avec une fonction qui ne prenait pas de
paramètre, mais ça ne marchait pas. Je vais quand même réessayer.

Et pour redessiner mon arbre, il suffit que j'englobe le tout dans un div avec les bons styles ?



Merci encore.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 juil. 2005 à 15:29
° paramètres ou pas, l'appel d'une fonction
dans une autre page fonctionne.
° style ou pas, dans un div ou span, au lieu de

document.write(arbre1);...
document.write(arbre2); ... par exemple

name frm.name div ou span.innerHTML=arbre1;...
name frm.name div ou span.innerHTML+=arbre2;...

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
0

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

Posez votre question
cs_flexx Messages postés 42 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 18 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).
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
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...

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
0
cs_flexx Messages postés 42 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 18 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 + "
");

}



function reAffiche(){ // Fonction de réaffichage

document.writeln("Avant");

nb.affiche();

document.writeln("Avant");

}



</script>



</head>





<script language="javascript">

nb.affiche();

</script>









</html>
0
Rejoignez-nous