IE динамически создавал функцию загрузки iframe, никогда не вызывал - PullRequest
3 голосов
/ 11 февраля 2012

У меня проблема с тем, что я не могу прикрепить какую-либо функцию 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 ]

2 голосов
/ 11 февраля 2012

Вы должны добавить обратный вызов onload перед установкой атрибута src.

2 голосов
/ 11 февраля 2012

Я думаю, вы должны использовать функцию attachEvent для IE.

  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 ); 

Выше код должен работать во всех браузерах без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...