Вставьте iFrame и затем загрузите его перед всем другим содержимым в FF - PullRequest
3 голосов
/ 20 декабря 2010

У меня есть плагины для браузера, которые вставляют iframe в веб-страницу.Iframe вставляется как можно раньше (используя DOMContentLoaded), чтобы содержимое iframe отображалось вместе со страницей.

В Firefox этого не происходит.Несмотря на то, что iframe, кажется, вставляется раньше, содержимое страницы / images / etc загружается до содержимого iframe.

Есть ли способ обойти это поведение Firefox, чтобы содержимое iframe могло загружаться раньше или раньше?

Не уверен, имеет ли это значение, но вот два метода с эквивалентными результатами:

Метод 1. Вставка iframe в DOMContentLoaded

Метод 2:

nsiWebProgressListener()

onStateChange: function (aBrowser, aWebProgress, aRequest, aStateFlags, aStatus) {
   const STATE_START = Components.interfaces.nsIWebProgressListener.STATE_START;
   const STATE_STOP = Components.interfaces.nsIWebProgressListener.STATE_STOP;

   if (aStateFlags & STATE_STOP) { //document is undefined at STATE_START

       try {
           //create iframe

       } catch (e) {}
   }
return true;
},

1 Ответ

0 голосов
/ 23 декабря 2010

Слушатель DOMContentLoaded срабатывает позже, чем можно было бы подумать о FF. Проблема была решена с помощью Firefox onLocationChange (который запускается при изменении URL) с циклом setTimeout, установленным на 50 мс.

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