Подождите, пока iframe загрузит JavaScript.
Я открываю iframe в JavaScript:
righttop.location = "timesheet_notes.php";
а затем хотите передать ему информацию:
righttop.document.notesform.ID_client.value = Client;
Очевидно, что эта строка не будет работать, пока страница не будет полностью загружена в iframe, и этот элемент формы должен быть записан в.
Итак, что является лучшим/наиболее эффективным способом решения этой проблемы? Какой-то цикл тайм-аута? В идеале я бы хотел, чтобы все это содержалось в этом конкретном script, вместо того, чтобы добавлять какие-либо дополнительные материалы на открываемую страницу.
Ответы
Ответ 1
Прежде всего, я считаю, что вы должны влиять на свойство src
iframes, а не 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 фрейм, а не фреймы.
Ответ 2
Я думаю, вы можете легко сделать это с помощью jQuery... jQuery Home
Просто перетащите страницу в jQuery $ function ()
... например.
$(document).ready(function() {
$('iframe').load(function() {
// write your code here....
}
Внимательно просмотрите пример загрузчика файлов:
Использование iframes для загрузки нескольких файлов...
Ответ 3
попробуйте этот...
$('iframe').each(function() {
$(this).ready(function() {
$('#result').html("ready");
});
});