2010-03-03 4 views
3

У меня есть страница с iframe. В этом Iframe есть шесть фреймов. Когда я используюВключает ли window.onload полное содержимое?

window.onload 

или

document.observe(window, 'load', func) // of PrototypeJs, 

это значит, что были загружены все содержимое iframe, и другое содержание 6 IFrames'?

Если ответ отрицательный, то как я могу быть уверенным в том, что все мои данные iframes загружены.

[В iframe внутри iframe нет никакого src. Я заполняю те Iframes из содержимого базы данных.]

Спасибо.

ответ

2

Ресурсы в iframe/frames живут в их собственном контексте, и вы не можете использовать window.onload в родительском документе. Каждый документ в кадрах должен сообщить родительскому документу, который они загрузили.

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

Есть, вероятно, миллион лучших решений ^^ Я просто предлагаю приблизительный план.

+0

Отличная идея. Но, как я уже сказал, шесть фреймов под одной, не имеют значения атрибута src. В таком случае я могу установить событие onload? – Hoque

+0

Если iframes не имеют src, событие window.onload будет срабатывать, как только будут загружены все связанные ресурсы. Я предполагаю, что вы затем установили src iframes в событие window.onload или? – anddoutoi

+0

+1 спасибо, как и ваша идея :) –

2

Почему вы всегда можете реализовать небольшой счетчик в javascript, а затем каждый отдельный iframe уведомляет родительский фрейм, когда это делается при загрузке. счетчик, как только все шесть кадров кричат, что они готовы, могут делать все, что вы хотели бы сделать в onload. не должно быть слишком сложным, хотя, может быть, есть и более proper способов сделать это. посмотрим, что у вас есть у других. удачи!

+0

Спасибо за ваш быстрый ответ. – Hoque

+0

Ваш ответ также помог мне, но когда я нажал на вас, как на него ответил, знак «проверить» другого человека исчезнет. Как я могу также отметить вас как ответ. Благодарю. – Hoque

+0

ну, вы можете отметить только один ответ, как принято. Если вам нравится чей-то вклад, просто нажмите стрелку вверх, чтобы дать нам несколько пунктов :-) Я рад, что смогу помочь. –

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