Attendez que l'iframe soit chargé en JavaScript

J'ouvre un iframe en JavaScript:

righttop.location = "timesheet_notes.php"; 

Et ensuite souhaitez vous transmettre des informations:

 righttop.document.notesform.ID_client.value = Client; 

Bien entendu, cette ligne ne fonctionnera pas tant que la page n'a pas complètement chargé dans l'iframe, et cet élément de formulaire doit être écrit.

Alors, quel est le moyen le meilleur / le plus efficace pour résoudre ce problème? Une sorte de boucle de temporisation? Idéalement, j'aimerais vraiment garder tout cela contenu dans ce script particulier, plutôt que de devoir ajouter des éléments supplémentaires à la page qui est ouverte.

Tout d'abord, je crois que vous êtes censé affecter la propriété src d'iframes, pas d' location . Deuxièmement, raccordez l'événement de load l'iframe pour effectuer vos modifications:

 var myIframe = document.getElementById('righttop'); myIframe.addEventListener("load", function() { this.contentWindow.document.notesform.ID_client.value = Client; }); myIframe.src = 'timesheet_notes.php'; 

Encore une fois, tout cela présume que vous voulez dire i frame, pas les jeux de cadres.

Je suppose que vous pouvez facilement le faire avec jQuery … jQuery Home Branchez la page à la $ function () jQuery $ function () … eg

 $(document).ready(function() { $('iframe').load(function() { // write your code here.... } 

Regardez rapidement l'exemple de téléchargement de fichier ici: Utilisation d'iframes pour plusieurs téléchargements de fichiers …

essaye celui-là…

 $('iframe').each(function() { $(this).ready(function() { $('#result').html("ready"); }); });