J'ouvre un iframe en JavaScript:
righttop.location = "timesheet_notes.php";
et souhaitez ensuite lui transmettre des informations:
righttop.document.notesform.ID_client.value = Client;
Évidemment, cette ligne ne fonctionnera pas tant que la page ne sera pas complètement chargée dans l'iframe et que cet élément de formulaire sera là pour être écrit.
Alors, quelle est la meilleure façon/la plus efficace de résoudre ce problème? Une sorte de boucle de timeout? Idéalement, j'aimerais vraiment que tout soit contenu dans ce script particulier, plutôt que d'avoir à ajouter des éléments supplémentaires à la page qui est ouverte.
Tout d'abord, je pense que vous êtes censé affecter la propriété src
des iframes, pas location
. Deuxièmement, connectez l'événement load
de 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 suppose que vous voulez dire i frame, pas des framesets.
Je suppose que vous pouvez le faire assez facilement avec jQuery ... jQuery Home Accrochez simplement la page à jQuery $ function ()
... par ex.
$(document).ready(function() {
$('iframe').load(function() {
// write your code here....
}
Jetez un coup d'œil à l'exemple du téléchargeur de fichiers ici: tilisation d'iframes pour plusieurs téléchargements de fichiers ...
essaye celui-là...
$('iframe').each(function() {
$(this).ready(function() {
$('#result').html("ready");
});
});