动态更改iframe的onload

时间:2011-07-20 16:36:06

标签: javascript dom iframe onload

我有一个包含几个<iframe>标记的页面。我想动态地更改他们的onload动作。我有以下代码在FF,Safari,Chrome,Opera中正常工作,但IE(8)拒绝遵守。

document.getElementById('myiframe').onload = function() {
    return function() { file_onLoad(data); }
}();

我一直在使用类似的东西来设置onchange元素的<input>,这在我测试的所有浏览器中都很有效,包括IE。

document.getElementById('myinput').onchange = function() {
    return function() { file_onChange(data); }
}();

所以我猜这与我获取框架元素/对象的方式有关。

我也试过frames['myiframe']但没有成功。

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

它对我的工作正常......
我试过了:

function whatever(){
    document.getElementById('myiframe').src="http://www.google.com/"
    document.getElementById('myiframe').onload = function() {
        return function() { alert("Done."); }
    }();
}

它有效。 (我尝试在IE9上打开IE8模式)
如果它不适合你,试试这个:

document.getElementById('myiframe').addEventListener('load', file_onLoad, false);