Salut à vous.
Je suis en train de chercher une solution pour savoir quand une frame a fini son traitement...
Je vais expliquer un peu mieux le problème.
J'ai (malheureusement) besoin de frames pour arriver à afficher une arborescence d'un coté (treeview dynamique en javascript) et le texte de l'autre.
Lors d'un passage de la souris sur une partie du texte, le treeview se déplis et je me place au bon endroit (cela permet de savoir où nous nous trouvons dans l'arborescence).
Seulement le texte et l'arborescence sont très gros, et ca prend un moment à s'afficher. Cela n'est pas un vrai soucis et c'est même normal dans mon cas. Le truc est que je veux afficher un "traitement en cours" durant la création du treeview et la structure du texte.
Le texte et le treeview sont liés: passage de la souris sur le texte qui déroule le treeview, clique sur le treeview qui met la frame de gauche au bon endroit dans le texte...
Problème: un coup c'est le treeview qui s'affiche en premier, un coup ca peut être le texte de la frame de gauche... Si l'utilisateur a le maleur de passer la souris sur le texte alors que le treeview n'est pas encore affiché, ca fait une erreur javascript (la fonction n'existe pas encore...)
J'ai pensé faire cela:
Et pareil dans la frame de droite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <style> #navi{ //div qui contient le treeview à ne pas afficher display: none; } </style> ... //en haut dans le code de la frame de droite: var naviOK=false ... //en bas, en fin d'affichage naviOK=true if(naviOK==true && parent.content.contentOK && parent.content.contentOK==true){ document.getElementById('navi').style.display="block"; }
De ce fait, je devrai dans un cas ou dans l'autre attendre que les DEUX variables globales soit VRAIE pour afficher les div...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <style> #allcontent{ //div qui contient le texte display: none; } ... //javascript var contentOK=false ... //plus bas en fin d'affichage contentOK=true; if(parent.menu.naviOK && parent.menu.naviOK==true && contentOK==true){ document.getElementById('allcontent').style.display="block"; } </stryle>
Et bien bizarrement les deux div s'affichent bien... mais c'est comme si je n'avais rien fait ! en gros j'ai toujours le texte ou le treeview 3 ou 4 secondes avant l'autre...
La question: Y'a un autre moyen de savoir quand une frame est bien affichée ?
Partager