Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> onload + замена object/embed, проблема в порядке выполнения 
:(
    Опции темы
AlDev
Дата 30.4.2007, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: нет
Всего: 50



Собсно столкнулся с "небольшой" проблемой.
Решения в принципе не вижу %(

На странице находятся flash-ки.
требуется пройтись по всем embed тэгам и в div(или что-либо еще) добавить <img style="dispaly:none" />
для FF/opera и подобных браузеров...

Вроде бы все просто и очевидно...
Код

var Browser = {};
Browser.IsIE = /(msie|internet explorer)/i.test(navigator.userAgent);

function onDocumentLoad() {
  var embedList = document.getElementsByTagName('embed');
  for (var i = 0;i<embedList.length;i++) {
    var embedNode = embedList[i].parentNode;
    embedNode.parentNode.innerHTML = "<img style='display:none'></img>" + embedNode.innerHTML;
  }
}

if (!Browser.IsIE) {
  window.addEventListener("load",onDocumentLoad,false);
}


(возможно где, очепятался, тут суть важна smile )

Так вот в таком случае произойдет переписывание html для embed. Браузер начинает обрабатывать еще раз и соответственно flash-ки начнут грузиться по второму кругу. в 9-м flash player-e это вызовет кучу Exception-ов типа Load never complete и т.п.

Требуется: как-то добавить картинки туда-же, где лежат flash-ки...

По идее можно ложить их на новый слой, но тогда проблемы с позиционированием, а решение надо универсальное :(

Подскажите плиз, куда копать.
PM MAIL WWW ICQ YIM MSN   Вверх
SelenIT
Дата 30.4.2007, 08:39 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Использовать DOM-методы? Насколько мне известно, они существующие ноды, в отличие от innerHTML, не перестраивают...
Код

try {
   window.addEventListener("load",function() { // если выполнится - это уже не IE
      var embedList = document.getElementsByTagName('embed');
      for (var i = 0;i<embedList.length;i++) {
      var embedNode = embedList[i].parentNode;
      var img = document.createElement('img');
      img.style.display = 'none';
      embedNode.parentNode.insertBefore(img, embedNode);
  },false);
} catch(exception) { /* это был IE:) */}

P.S. AlDev, зачем вообще понадобилась такая странность с добавлением картинок перед флешками, да ещё браузероспецифично? Может, конечной цели можно достичь ещё проще?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
AlDev
Дата 30.4.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: нет
Всего: 50



SelenIT, секрет. скоро выложу smile

Спасибо, буду пробовать.

Добавлено через 12 минут и 51 секунду
SelenIT, ДА! ЭТО ОНО! smile Биг спасибо. +1
PM MAIL WWW ICQ YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.