Mes aventures dans le fabuleux monde du Javascript se poursuivent ....
Alors voilà.
Ma page est divisée en 3 Frame.
Mon code central s'exécute sur la première, c'est une sorte de menu.
Suivant le choix de l'utilisateur, il fait apparaitre des choses dans les
deux autres fenêtres qui contiennent des formulaires. Ces formulaires sont
contrôlés indépendamment par un code Javascript inclus dans ces frame, puis
est renvoyé vers une procédure du javascript du frame central par un
parent.frames["frame_central"].nom_de_la_fonction();
Jusqu'à maintenant, cela marchait bien.
Sauf que visiblement, quand j'essaie de réouvrir une page dans un de ces
Frame qui a déjà été ouverte auparavant, plantage D'Internet Explorer, et
Firefox me dit qu'il ne connait pas cette fonction alors que quelques
minutes auparavant il s'en était servi sans rien dire.
Exemple :
Mon frame central exécute la fonction menu() -> pas de soucis
elle affiche dans frame2 une page HTML avec des boutons
Dans ces boutons, il y a diverses choses dont un bouton annuler
Je clique sur annuler -> le code OnClick du Javascript de la Frame2 dit :
OnClick="javascript:annule();"
La procédure annule() du Frame2 de la suivante stipule :
annule();
parent.frames["Frame_central"].menu();
Et là.... Boum....
IE -> Adresse 000000 non readable
FFOX -> Erreur : parent.frames.Frame_central.menu is not a function
Et pourtant ....
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ASM
Joe le Bonka wrote:
Bonsoir à tous ....
J'essaie d'y comprendre ... Une page de cadres (3 cadres) dont - cadre 1 : central nommé 'Frame_central' contient le menu et du JS dont fonction menu() - cadre 2 - cadre 3
Une page est chargée dans cadre 2 elle contient : onclick="parent.Frame_central.menu();" et çà merdoie ?
à moins que tu n'aies écrit - un coup : 'Frame_central' et - un coup : 'Frame_centrale'
et s'il n'y a pas d'erreur dans menu() y pas de raison que ça cafouille.
à moins que l'erreur ne vienne (extrait de ta prose) de :
J'essaie d'y comprendre ...
Une page de cadres (3 cadres) dont
- cadre 1 : central nommé 'Frame_central'
contient le menu et du JS dont fonction menu()
- cadre 2
- cadre 3
Une page est chargée dans cadre 2
elle contient :
onclick="parent.Frame_central.menu();"
et çà merdoie ?
à moins que tu n'aies écrit
- un coup : 'Frame_central'
et
- un coup : 'Frame_centrale'
et s'il n'y a pas d'erreur dans menu()
y pas de raison que ça cafouille.
à moins que l'erreur ne vienne (extrait de ta prose) de :
J'essaie d'y comprendre ... Une page de cadres (3 cadres) dont - cadre 1 : central nommé 'Frame_central' contient le menu et du JS dont fonction menu() - cadre 2 - cadre 3
Une page est chargée dans cadre 2 elle contient : onclick="parent.Frame_central.menu();" et çà merdoie ?
à moins que tu n'aies écrit - un coup : 'Frame_central' et - un coup : 'Frame_centrale'
et s'il n'y a pas d'erreur dans menu() y pas de raison que ça cafouille.
à moins que l'erreur ne vienne (extrait de ta prose) de :
J'essaie d'y comprendre ... Une page de cadres (3 cadres) dont - cadre 1 : central nommé 'Frame_central' contient le menu et du JS dont fonction menu() - cadre 2 - cadre 3
Ce n'est pas exactement cela. Cadre 1 contient le code javascript de la fonction menu(); Cette procédure ouvre dans cadre 2 une page "menu.htm" qui contient des boutons. Ces boutons vont ouvrir d'autres pages html dans cadre 3. L'erreur arrive quand après avoir utilisé la procédure menu() une fois, elle est rappellée plus tard à partir de cadre3. Je renvoie l'exécution du code javascript vers la procédure menu() avec parent.frames["cadre1"].menu(); Il n'y a pas d'ambiguités dans le frame, car pour tester, je lui ai demandé d'afficher le nom du cadre1, et cela fonctionne.
Et là, il ne retrouve plus la procedure menu(); j'ai dorénavant sous IE et sous FFOX soit un magnifique 'membre introuvable' sous IE, soit "menu is not a function".
Cela me laisse vraiment perplexe. La procédure existe, il s'en ai déjà servi, la référence est bonne, mais le navigateur ne la "voit" plus. Mon code Javascript est inclus dans la page centrale, ca fait un peu plus de 200 lignes, ce n'est quand même pas suffisamment énorme pour planter IE quand même ? Quand dans Cadre 2, j'appelle la procédure menu() la première fois, est ce qu'il faut que je ferme le document (genre close.qqchse) pour pouvoir le re-appeller après sans soucis ? Je sais plus quoi penser ....
Une page est chargée dans cadre 2 elle contient : onclick="parent.Frame_central.menu();" et çà merdoie ?
Non, c'est pire que cela : la premiere fois ca marche. C'est après que ca plante.
à moins que l'erreur ne vienne (extrait de ta prose) de :
Oui, désolé, je n'ai pas été très exigeant avec moi-même dans le post, c'est pas très malin de ma part, et je le regrette, mais l'erreur ne semble pas provenir d'une mauvaise orthographe des différents éléments. L'appel menu() qui plante, je l'ai copié/collé d'un autre endroit où ca plantait pas.
ASM wrote:
Joe le Bonka wrote:
Bonsoir à tous ....
J'essaie d'y comprendre ...
Une page de cadres (3 cadres) dont
- cadre 1 : central nommé 'Frame_central'
contient le menu et du JS dont fonction menu()
- cadre 2
- cadre 3
Ce n'est pas exactement cela.
Cadre 1 contient le code javascript de la fonction menu();
Cette procédure ouvre dans cadre 2 une page "menu.htm" qui contient des
boutons.
Ces boutons vont ouvrir d'autres pages html dans cadre 3.
L'erreur arrive quand après avoir utilisé la procédure menu() une fois, elle
est rappellée plus tard à partir de cadre3.
Je renvoie l'exécution du code javascript vers la procédure menu() avec
parent.frames["cadre1"].menu();
Il n'y a pas d'ambiguités dans le frame, car pour tester, je lui ai demandé
d'afficher le nom du cadre1, et cela fonctionne.
Et là, il ne retrouve plus la procedure menu(); j'ai dorénavant sous IE et
sous FFOX soit un magnifique 'membre introuvable' sous IE, soit "menu is not
a function".
Cela me laisse vraiment perplexe. La procédure existe, il s'en ai déjà
servi, la référence est bonne, mais le navigateur ne la "voit" plus.
Mon code Javascript est inclus dans la page centrale, ca fait un peu plus de
200 lignes, ce n'est quand même pas suffisamment énorme pour planter IE
quand même ?
Quand dans Cadre 2, j'appelle la procédure menu() la première fois, est ce
qu'il faut que je ferme le document (genre close.qqchse) pour pouvoir le
re-appeller après sans soucis ?
Je sais plus quoi penser ....
Une page est chargée dans cadre 2
elle contient :
onclick="parent.Frame_central.menu();"
et çà merdoie ?
Non, c'est pire que cela :
la premiere fois ca marche.
C'est après que ca plante.
à moins que l'erreur ne vienne (extrait de ta prose) de :
Oui, désolé, je n'ai pas été très exigeant avec moi-même dans le post, c'est
pas très malin de ma part, et je le regrette, mais l'erreur ne semble pas
provenir d'une mauvaise orthographe des différents éléments. L'appel menu()
qui plante, je l'ai copié/collé d'un autre endroit où ca plantait pas.
J'essaie d'y comprendre ... Une page de cadres (3 cadres) dont - cadre 1 : central nommé 'Frame_central' contient le menu et du JS dont fonction menu() - cadre 2 - cadre 3
Ce n'est pas exactement cela. Cadre 1 contient le code javascript de la fonction menu(); Cette procédure ouvre dans cadre 2 une page "menu.htm" qui contient des boutons. Ces boutons vont ouvrir d'autres pages html dans cadre 3. L'erreur arrive quand après avoir utilisé la procédure menu() une fois, elle est rappellée plus tard à partir de cadre3. Je renvoie l'exécution du code javascript vers la procédure menu() avec parent.frames["cadre1"].menu(); Il n'y a pas d'ambiguités dans le frame, car pour tester, je lui ai demandé d'afficher le nom du cadre1, et cela fonctionne.
Et là, il ne retrouve plus la procedure menu(); j'ai dorénavant sous IE et sous FFOX soit un magnifique 'membre introuvable' sous IE, soit "menu is not a function".
Cela me laisse vraiment perplexe. La procédure existe, il s'en ai déjà servi, la référence est bonne, mais le navigateur ne la "voit" plus. Mon code Javascript est inclus dans la page centrale, ca fait un peu plus de 200 lignes, ce n'est quand même pas suffisamment énorme pour planter IE quand même ? Quand dans Cadre 2, j'appelle la procédure menu() la première fois, est ce qu'il faut que je ferme le document (genre close.qqchse) pour pouvoir le re-appeller après sans soucis ? Je sais plus quoi penser ....
Une page est chargée dans cadre 2 elle contient : onclick="parent.Frame_central.menu();" et çà merdoie ?
Non, c'est pire que cela : la premiere fois ca marche. C'est après que ca plante.
à moins que l'erreur ne vienne (extrait de ta prose) de :
Oui, désolé, je n'ai pas été très exigeant avec moi-même dans le post, c'est pas très malin de ma part, et je le regrette, mais l'erreur ne semble pas provenir d'une mauvaise orthographe des différents éléments. L'appel menu() qui plante, je l'ai copié/collé d'un autre endroit où ca plantait pas.
Joe le Bonka
Joe le Bonka wrote:
ASM wrote:
Joe le Bonka wrote:
Bonsoir à tous ....
Cela me laisse vraiment perplexe. La procédure existe, il s'en ai déjà
servi, la référence est bonne, mais le navigateur ne la "voit" plus. Mon code Javascript est inclus dans la page centrale, ca fait un peu plus de 200 lignes, ce n'est quand même pas suffisamment énorme pour planter IE quand même ? Quand dans Cadre 2, j'appelle la procédure menu() la première fois, est ce qu'il faut que je ferme le document (genre close.qqchse) pour pouvoir le re-appeller après sans soucis ? Je sais plus quoi penser ....
Holàlà, je viens de régler le problème complètement à tatons... Maintenant, il trouve systématiquement la procédure menu(), et il n'y a plus de crash d'IE. Mais qu'est ce que j'ai changé ?
Ben, en fait, à partir de mon code javascript, j'ouvrai les pages en html dans les frame à partir de la fonction open couplée avec une variable du style : menu=open("nomdelapage.htm","nomduframe").
En supprimant la variable, plus aucun soucis.
Bizarre, bizarre ?
Joe le Bonka wrote:
ASM wrote:
Joe le Bonka wrote:
Bonsoir à tous ....
Cela me laisse vraiment perplexe. La procédure existe, il s'en ai déjà
servi, la référence est bonne, mais le navigateur ne la "voit" plus.
Mon code Javascript est inclus dans la page centrale, ca fait un peu
plus de 200 lignes, ce n'est quand même pas suffisamment énorme pour
planter IE quand même ?
Quand dans Cadre 2, j'appelle la procédure menu() la première fois,
est ce qu'il faut que je ferme le document (genre close.qqchse) pour
pouvoir le re-appeller après sans soucis ?
Je sais plus quoi penser ....
Holàlà, je viens de régler le problème complètement à tatons...
Maintenant, il trouve systématiquement la procédure menu(), et il n'y a plus
de crash d'IE.
Mais qu'est ce que j'ai changé ?
Ben, en fait, à partir de mon code javascript, j'ouvrai les pages en html
dans les frame à partir de la fonction open couplée avec une variable du
style :
menu=open("nomdelapage.htm","nomduframe").
Cela me laisse vraiment perplexe. La procédure existe, il s'en ai déjà
servi, la référence est bonne, mais le navigateur ne la "voit" plus. Mon code Javascript est inclus dans la page centrale, ca fait un peu plus de 200 lignes, ce n'est quand même pas suffisamment énorme pour planter IE quand même ? Quand dans Cadre 2, j'appelle la procédure menu() la première fois, est ce qu'il faut que je ferme le document (genre close.qqchse) pour pouvoir le re-appeller après sans soucis ? Je sais plus quoi penser ....
Holàlà, je viens de régler le problème complètement à tatons... Maintenant, il trouve systématiquement la procédure menu(), et il n'y a plus de crash d'IE. Mais qu'est ce que j'ai changé ?
Ben, en fait, à partir de mon code javascript, j'ouvrai les pages en html dans les frame à partir de la fonction open couplée avec une variable du style : menu=open("nomdelapage.htm","nomduframe").
En supprimant la variable, plus aucun soucis.
Bizarre, bizarre ?
YD
[...] Maintenant, il trouve systématiquement la procédure menu() [...] à partir de la fonction open couplée avec une variable du style : menu=open("nomdelapage.htm","nomduframe").
En supprimant la variable, plus aucun soucis.
Bizarre, bizarre ?
Une fonction (pas de procédure en javascript) est une variable de type Function. Si on réaffecte son nom à autre chose, la fonction n'existe plus !
-- Y.D.
[...]
Maintenant, il trouve systématiquement la procédure menu() [...]
à partir de la fonction open couplée avec une variable du
style :
menu=open("nomdelapage.htm","nomduframe").
En supprimant la variable, plus aucun soucis.
Bizarre, bizarre ?
Une fonction (pas de procédure en javascript) est une variable de type
Function. Si on réaffecte son nom à autre chose, la fonction n'existe
plus !
[...] Maintenant, il trouve systématiquement la procédure menu() [...] à partir de la fonction open couplée avec une variable du style : menu=open("nomdelapage.htm","nomduframe").
En supprimant la variable, plus aucun soucis.
Bizarre, bizarre ?
Une fonction (pas de procédure en javascript) est une variable de type Function. Si on réaffecte son nom à autre chose, la fonction n'existe plus !