IE动态创建的Iframe的onload函数从未调用过

时间:2012-02-11 15:43:54

标签: html internet-explorer iframe

我正在努力解决我无法将任何onload函数附加到动态创建的iframe的问题。这只发生在IE中,适用于FF。这是我的代码:

var ifrm = document.createElement("IFRAME");
ifrm.setAttribute("src", "legacy-hostpage.html?rnd=" + new Date().getTime());
ifrm.style.width = "100%";
ifrm.style.height = "400px";
ifrm.name = "legacy-frame";
ifrm.id = "IFRM-" + new Date().getTime();

ifrm.onload = function() {
  alert('onload onload');
};

wrapper.appendChild(ifrm); 

我希望我能在这个项目中使用jQuery,但我不能..你能告诉我什么是错的吗?

2 个答案:

答案 0 :(得分:2)

我认为你应该为IE使用attachEvent函数。

  function myLoad() {
      alert( "onload onload" );
  }

  if ( window.addEventListener ) { 
      ifrm.addEventListener( "load", myLoad, false );
  }
  else if ( window.attachEvent ) { 
      ifrm.attachEvent( "onload", myLoad );
  }
  else {
      ifrm.onload = myLoad;
  }

  wrapper.appendChild( ifrm ); 

以上代码应该可以在所有浏览器中正常运行。

答案 1 :(得分:2)

您应该在设置src属性之前添加onload回调。