2009-09-23 5 views
0

Excuses si cela a été répondu ailleurs, mais je n'ai pas été en mesure de trouver référencé. (Probablement parce que personne d'autre ne voudrait faire une telle chose, je l'admets). Donc, j'ai une page avec trois iframes dedans. Un événement sur un déclenche une fonction javascript qui charge de nouvelles pages dans les deux autres iframes; ['topright'] et ['bottomright']. Toutefois, javascript dans la page en cours de chargement dans iframe 'topright' doit envoyer des informations aux éléments de l'iframe 'bottomright'.javascript: en attente d'une page iframe à charger avant de l'écrire (mais pas de la page qui a déclenché le chargement)

window.frames ['bottomright']. Document.subform.ID_client = client; etc

Mais cela ne fonctionnera que si la page est entièrement chargée dans le cadre de droite. Alors, quel serait le moyen le plus efficace pour que ce code dans l'iframe 'topright' vérifie et s'assure que cet élément de forme dans le cadre de droite est réellement disponible pour écrire, avant qu'il ne l'écrive? En gardant à l'esprit que le chargement de la page n'a pas été déclenché à partir du cadre topright, je ne peux pas simplement utiliser une fonction onLoad.

(Je sais que cela sonne probablement comme une route tortueuse pour obtenir hideusement des données d'une page à l'autre, mais c'est une autre histoire. Le client a toujours raison, etc ... :-))

Répondre

0

Si je comprends votre problème correctement, et vous contrôlez le contenu de toutes les images, et tout le contenu du cadre est du même domaine, vous pouvez déclencher un événement onload sur le cadre bottomright à tirer les données de topright, plutôt que d'essayer de il.

bottomright peut même invoquer une fonction dans topright et lui demander de pousser les données (qui, dans mon esprit est encore une forme de traction ).

Quelque chose comme ceci:

// topright 
function pushData(frame, form, name, value) { 
    frame.document.forms[form].elements[name] = value; 
} 

// bottomright 
window.onload = function() { 
    top.frames['topright'].pushData(window, 'sub_form', 'ID_client', 'client'); 
} 

Untested. Je ne suis pas sûr à 100% en passant window de bottomright va fonctionner, dans ce cas, cela pourrait être une alternative:

// topright 
function pushData(frame, form, name, value) { 
    top.frames[frame].document.forms[form].elements[name] = value; 
} 

// bottomright 
window.onload = function() { 
    top.frames['topright'].pushData('bottomright', 'sub_form', 'ID_client', 'client'); 
} 
Questions connexes