web-dev-qa-db-ja.com

JavaScriptでiframeが読み込まれるのを待ちます

JavaScriptでiframeを開いています:

righttop.location = "timesheet_notes.php";

そしてそれに情報を渡したい:

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

もちろん、その行は、ページがiframeに完全に読み込まれ、フォーム要素がそこに書き込まれるまで機能しません。

それで、これに対処するための最良/最も効率的な方法は何ですか?ある種のタイムアウトループ?理想的には、開いているページに余分なものを追加するのではなく、すべてをこの特定のスクリプト内に保持したいです。

34
Bill Dawes

まず第一に、あなたは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を意味していると想定しています。

61
Crescent Fresh

あなたはjQueryでこれをかなり簡単に行うことができると思います... jQuery Home jQueryにページをフックする$ function ()...

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

ここでファイルアップローダーの例をざっと見てみましょう: 複数のファイルのアップロードにiframeを使用しています...

6
rajesh pillai

これを試してください...

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