2011-06-23 8 views
6

У меня есть загрузка iframe на родительскую страницу. IFrame содержит последовательность форм, и я хотел бы принять действие на родительской странице каждый раз, когда содержимое iframe перезагружается (т. Е. После того, как форма будет представлена ​​в содержимом iframe). Текущий код находится на родительской странице и работает во всех крупных игроках, кроме IE (меня интересует только IE 7 & 8).iframe onload в IE7/8 с Javascript

var iframe = document.getElementById('theiframe'); 
function refresh() { 
    alert('foo'); 
} 
if (iframe.attachEvent) iframe.attachEvent('onload', refresh); 
else iframe.onload = refresh; 

Что мне не хватает, что помешает этому быть эффективным в IE?

+0

Попробуйте ссылаться на документ iframe: var iframe = document.getElementById ('theiframe'). Document; (не ответ, потому что я угадываю :)) – Cfreak

ответ

4

Заменить:

iframe.onload = refresh 

с:

iframe.attachEvent('load', refresh, false); 


Чтобы очистить путаницы:

var iframe = document.getElementById('theiframe'); 
function refresh() { 
    alert('foo'); 
} 

if (iframe.attachEvent) iframe.attachEvent('onload', refresh); 
else iframe.addEventListener('load', refresh, false) 
+0

Есть ли разница между 'load' и' onload'? –

+0

IE вызывает событие onload, в то время как другие браузеры называют его загрузкой. – Joe

+0

Я до сих пор добавлял кластер 'else if (iframe.addEventListener) ...' до конца. Хороший звонок! –

1

Вы можете вызвать его из iframe по телефону parent.refresh(), когда вы закончите с подачей.

+0

Хотя я в конечном счете контролирую как родительский, так и iframe, каким-либо образом изменить iframe является чрезмерно сложным. –

+1

нормально, но иногда происходит событие 'onload', в то время как все задание не выполняется в' iframe'. Я нашел добавление команды «Я сделан» в iframe более надежным для всех браузеров. – Mic

+0

В этом случае не имеет значения, что содержимое iframe (ресурсы, DOM и т. Д.) Загружены или не закончены, просто важно, чтобы «пользователь начал просматривать новую страницу». Однако большой момент. –

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