2012-02-22 1 views
0

Я создаю веб-страницу, которая нуждается в том, чтобы вытащить библиотеку Javascript, которая является незаменимой, но также нарушает другой код, изменяя прототипы встроенных классов. Я изолировал его в iframe и установил совместный обмен данными между ними.Является ли body.onload всегда вызывается после загрузки iframes?

Когда срабатывает тело body.onload iframe, мой код изменит родительский документ. Теоретически этот код будет правильным, независимо от того, запускается ли родительский или дочерний body.onload. На практике я не могу проверить один путь кода, потому что iframe всегда загружается перед родителем, даже если я ввожу искусственные задержки на веб-сервере.

Является ли родительское тело гарантированным всегда при загрузке только после загрузки дочерних документов или это просто причуда Firefox?

Если нет, то как я могу, ради тестирования, заставить ребенка загружаться позже, когда sleep(5) в child.php не дает мне этот тестовый пример?

Наконец, когда дочерний Javascript изменяет его среду Javascript, гарантируется ли это отдельно от родительского фрейма или это просто причуда Firefox, которая заставляет его работать?

Переносимость. Благодарю.

+0

Сон НИКОГДА не отвечает на состояние гонки. Это похоже на похороны зомби. Это просто замедляет их, но они будут всплывать. – JohnFx

+0

'sleep' *** чисто *** для тестирования. Я правильно решил состояние гонки, я просто не могу получить покрытие кода. – spraff

ответ

0

Если для вас важна портабельность, то разумное отношение тоже имеет значение. Вся ваша концепция звучит неубедительно и необоснованно, читая ваше сообщение (дело с iframes, sleep и т. Д.).

Однако, чтобы ответить вам вопросы, я не 100% уверен, что document.body.onload, но вы можете быть уверены, что любой обработчик обязан window.onload будет срабатывать после всех плавающих фреймов были загружены, что очень и очень кросс-совместимый браузер. Также тот факт, что iframe является изолированной средой с собственным DOM, очень кросс-браузер. Поэтому вам не нужно беспокоиться о родительском документе или других фреймах и конфликтах.

Смежные вопросы