Показать сообщение отдельно
  #1 (permalink)  
Старый 30.07.2009, 14:00
Профессор
Отправить личное сообщение для hogart Посмотреть профиль Найти все сообщения от hogart
 
Регистрация: 18.04.2008
Сообщений: 152

onload на iframe срабатывает дважды
Стоит задача — менять баннеры по AJAX-переходу (таргетируем баннеры по разным разделам на сайте).
C сервера дергаем вот такую ручку, передавая ей кодовое имя баннера (верхний/боковой) и URL.
function reloadBanner(which, url)
    {
        var div = document.createElement('div');

        div.style.position = 'absolute';
        div.style.top = '-10000px';
        div = document.body.appendChild(div);
        
        div.innerHTML = banners[which].template;
        var iframe = div.firstChild; 
        iframe.ondblclick = function() {return which};
        
        function frmLoad (evt) {
            var which = this.ondblclick()
            var olddiv = $(banners[which].selector)[0];

            olddiv.replaceChild(this, olddiv.firstChild)
        }

        iframe.addEventListener('load', frmLoad, false)
        iframe.src = url;
    }


Функция frmLoad вызывается дважды.
Помогите, что делать, кто виноват?

Сразу скажу: пробовал делать return false и iframe.addEventListener('load', frmLoad, true). eventPhase в обоих случаях одинаковый.

По поводу кроссбраузерности будем думать потом
Ответить с цитированием