Appel de fonction à partir d'une autre page [Résolu]

cs_flexx 42 Messages postés vendredi 28 novembre 2003Date d'inscription 18 août 2010 Dernière intervention - 19 juil. 2005 à 11:59 - Dernière réponse : cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention
- 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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 20 juil. 2005 à 09:12
3
Merci
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]~

Merci cs_bultez 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 19 juil. 2005 à 12:12
0
Merci
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
]~
Commenter la réponse de cs_bultez
cs_flexx 42 Messages postés vendredi 28 novembre 2003Date d'inscription 18 août 2010 Dernière intervention - 19 juil. 2005 à 13:42
0
Merci
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.
Commenter la réponse de cs_flexx
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 19 juil. 2005 à 15:29
0
Merci
° 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]~
Commenter la réponse de cs_bultez
cs_flexx 42 Messages postés vendredi 28 novembre 2003Date d'inscription 18 août 2010 Dernière intervention - 19 juil. 2005 à 16:31
0
Merci
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).
Commenter la réponse de cs_flexx
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 19 juil. 2005 à 16:50
0
Merci
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]~
Commenter la réponse de cs_bultez
cs_flexx 42 Messages postés vendredi 28 novembre 2003Date d'inscription 18 août 2010 Dernière intervention - 19 juil. 2005 à 17:12
0
Merci
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>
Commenter la réponse de cs_flexx

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.