Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[html - jscript] exécuter code, si et seulement si une frame est chargée

4 réponses
Avatar
sympatix
Bonjour !

[Contexte: navigation internet, côté client]

J'ai un code qui s'éxécute trop tôt (avant le chargement d'une frame), ce
qui me génère une erreur (objet null).
En gros, ce code doit me recharger une div (ma_div) dans une autre frame,
mais il faut pour celà que cette div soit déjà chargée (qu'elle existe, en
fait), ce qui n'est pas toujours le cas, c'est ce qui me pose problème.

j'ai bien essayé le code ci-dessous, pour tester le chargement de la frame,
mais le script part alors en boucle infinie, et je suis
obligé de "killer" IE par Ctrl-Alt-Suppr:
c'est la ligne 2 qui pose problème. Le code est-il juste, manque-t-il
quelque chose ?

---------Extrait----------
var v_frame = window.parent.frames[0];
while (v_frame.document.readyState!="complete");
v_frame.document.all.ma_div.innerHTML="bla bla bla";
------Fin de l'extrait-----

Merci d'avance :-)
--
Cordialement
saint_path_x_arobase_t'es_laide_euh_point_fr

(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)

4 réponses

Avatar
Georges MAUREL
Bonjour sympatix,
Avez vous essayé
while (v_frame.document.readyState!=4);
plutot que
while (v_frame.document.readyState!="complete");

Cordialement
Georges


"sympatix" a écrit dans le message de
news:
Bonjour !

[Contexte: navigation internet, côté client]

J'ai un code qui s'éxécute trop tôt (avant le chargement d'une frame), ce
qui me génère une erreur (objet null).
En gros, ce code doit me recharger une div (ma_div) dans une autre frame,
mais il faut pour celà que cette div soit déjà chargée (qu'elle existe, en
fait), ce qui n'est pas toujours le cas, c'est ce qui me pose problème.

j'ai bien essayé le code ci-dessous, pour tester le chargement de la
frame,

mais le script part alors en boucle infinie, et je suis
obligé de "killer" IE par Ctrl-Alt-Suppr:
c'est la ligne 2 qui pose problème. Le code est-il juste, manque-t-il
quelque chose ?

---------Extrait----------
var v_frame = window.parent.frames[0];
while (v_frame.document.readyState!="complete");
v_frame.document.all.ma_div.innerHTML="bla bla bla";
------Fin de l'extrait-----

Merci d'avance :-)
--
Cordialement
saint_path_x_arobase_t'es_laide_euh_point_fr

(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)





















Avatar
sympatix
Bonjour sympatix,
Bonjour


Avez vous essayé
while (v_frame.document.readyState!=4);
plutot que
while (v_frame.document.readyState!="complete");


Je viens de faire l'essai à l'instant, et c'est pareil.

--
Cordialement
saint_path_x_arobase_t'es_laide_euh_point_fr

(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)

Avatar
Georges MAUREL
Re-bonjour Sympatix,
Oubliez mon post précédent et essayez ceci à la place

<script language="jscript">
{
var v_interval;
v_interval = setInterval("testercomplete()",500);

function testercomplete()
{
var v_frame = window.parent.frames[0];
if (v_frame.document.readyState=="complete")
{
v_frame.document.all.ma_div.innerHTML="bla bla bla";
alert("complete");
clearInterval(v_interval);
}
else
alert(" not complete");
}
}
</script>

Cordialement
Georges


"sympatix" a écrit dans le message de
news:
Bonjour !

[Contexte: navigation internet, côté client]

J'ai un code qui s'éxécute trop tôt (avant le chargement d'une frame), ce
qui me génère une erreur (objet null).
En gros, ce code doit me recharger une div (ma_div) dans une autre frame,
mais il faut pour celà que cette div soit déjà chargée (qu'elle existe, en
fait), ce qui n'est pas toujours le cas, c'est ce qui me pose problème.

j'ai bien essayé le code ci-dessous, pour tester le chargement de la
frame,

mais le script part alors en boucle infinie, et je suis
obligé de "killer" IE par Ctrl-Alt-Suppr:
c'est la ligne 2 qui pose problème. Le code est-il juste, manque-t-il
quelque chose ?

---------Extrait----------
var v_frame = window.parent.frames[0];
while (v_frame.document.readyState!="complete");
v_frame.document.all.ma_div.innerHTML="bla bla bla";
------Fin de l'extrait-----

Merci d'avance :-)
--
Cordialement
saint_path_x_arobase_t'es_laide_euh_point_fr

(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)





















Avatar
sympatix
Re-bonjour Sympatix,
Oubliez mon post précédent .../...


Hmmff....,... ça y est, j'ai tout oublié....;-)

.../...et essayez ceci à la place

<script language="jscript">
{
var v_interval;
v_interval = setInterval("testercomplete()",500);

function testercomplete()
{
var v_frame = window.parent.frames[0];
if (v_frame.document.readyState=="complete")
{
v_frame.document.all.ma_div.innerHTML="bla bla bla";
alert("complete");
clearInterval(v_interval);
}
else
alert(" not complete");
}
}
</script>


Effectivement, après quelques adaptations à mon code, ça fonctionne
parfaitement !
Merci beaucoup :-)
--
Cordialement
saint_path_x_arobase_t'es_laide_euh_point_fr

(Antispam: Ôter les "toto" dans l'adresse, pour me répondre)