iframe onload in IE7/8 with Javascript

2019-02-13 18:56发布

问题:

I have an iframe loading into a parent page. The iframe contains a sequence of forms, and I'd like to take action on the parent page every time the iframe content in reloaded (ie, after a form is submitted in the iframe content). The current code is located on the parent page and works in all the big players except IE (I'm only concerned with IE 7 & 8).

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

What am I missing that would prevent this from being effective in IE?

回答1:

Replace:

iframe.onload = refresh

with:

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


To clear any confusion:

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

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


回答2:

You can call it from the iframe by calling parent.refresh() when you are done with a submit.