我正在努力解决无法将任何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,但我不能。你能告诉我怎么了吗?

最佳答案

我认为你应该为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 );

上面的代码应该可以在所有浏览器中正常工作。

10-07 22:00