JavaScriptでiframeを開いています:
righttop.location = "timesheet_notes.php";
そしてそれに情報を渡したい:
righttop.document.notesform.ID_client.value = Client;
もちろん、その行は、ページがiframeに完全に読み込まれ、フォーム要素がそこに書き込まれるまで機能しません。
それで、これに対処するための最良/最も効率的な方法は何ですか?ある種のタイムアウトループ?理想的には、開いているページに余分なものを追加するのではなく、すべてをこの特定のスクリプト内に保持したいです。
まず第一に、あなたはsrc
ではなくiframeのlocation
プロパティに影響を与えるはずだと思います。次に、iframeのload
イベントをフックして変更を実行します。
var myIframe = document.getElementById('righttop');
myIframe.addEventListener("load", function() {
this.contentWindow.document.notesform.ID_client.value = Client;
});
myIframe.src = 'timesheet_notes.php';
繰り返しますが、これはすべて、フレームセットではなくi frameを意味していると想定しています。
あなたはjQueryでこれをかなり簡単に行うことができると思います... jQuery Home jQueryにページをフックする$ function ()
...
$(document).ready(function() {
$('iframe').load(function() {
// write your code here....
}
ここでファイルアップローダーの例をざっと見てみましょう: 複数のファイルのアップロードにiframeを使用しています...
これを試してください...
$('iframe').each(function() {
$(this).ready(function() {
$('#result').html("ready");
});
});