Порядок выполнения функции JS - PullRequest
1 голос
/ 09 февраля 2011

У меня две страницы, а именно Parent.xhtml (управляет макетом) и Child.xhtml (отображает содержимое). Дочерняя страница включается в родительскую страницу с помощью тега <iframe>.

Мне нужно реализовать функцию загрузки с использованием JavaScript. До этого я хочу знать, в каком порядке будут выполняться функции javascript?

Будет ли функция js родительской страницы выполняться первой? или дочерняя страница js функция будет выполняться первой?

В ожидании ваших ответов.! Заранее спасибо

1 Ответ

0 голосов
/ 09 февраля 2011

Согласно предыдущему ответу , браузеры могут не ждать загрузки фреймов, прежде чем запускать событие onload в родительском окне. Вы не можете делать предположения о том, какой из них закончится первым - есть вероятность того, что там произойдет состояние гонки, поэтому любой из них может финишировать первым.

Одним из решений может быть написание функции, ожидающей, пока она не будет вызвана определенное количество раз, перед выполнением:

var runs = 0;
function onLoad() {
    if (++runs < 2) return;
    // put code to execute once both have loaded
}

Тогда в HTML:

<body onload="onLoad();">
    .....
    <iframe onload="onLoad();">

Либо укажите URL-адрес iframe в обработчике загрузки родительского окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...