Проблема IE7 Ext JS: неопределенная ошибка JS в window.close()

Я использую Ext JS для создания всплывающего окна, вот код:

function popupImage(term, imageNumber){

    if(currentPopupWindow!=null){
        currentPopupWindow.close();
    }

    currentPopupWindow = new Ext.Window({
                layout      : 'fit',
                closeAction :'hide',
                plain       : true,
                constrain   : true,
                width: 300,
                border: false,
                html: "Blah blah content"<span onclick=\"currentPopupWindow.close();\">cerrar</span>"
            });



    currentPopupWindow.show(false, function(){
        var el = Ext.get("termimage");
        currentPopupWindow.setWidth(el.getWidth(true)+150);
    });

    currentPopupWindow.anchorTo(Ext.get("dictionarycontainer"), "tl");
}

В фаерфоксе это работает нормально. В IE7 это работает, но всегда выдает ошибку javascript с надписью «неопределенная ошибка».

Что я делаю не так?

РЕДАКТИРОВАТЬ

Удаление строки anchorTo устраняет ошибку. Я все еще хотел бы привязаться к этому, так что это не отличное решение!


person Chris James    schedule 04.02.2009    source источник
comment
Он дает вам номер строки?   -  person Salty    schedule 04.02.2009
comment
Строка 4: Неопределенная ошибка. Я попал в отладчик, он выделяет M=G.getBoundingClientRect() как ошибку. Это было бы в Ext JS, я этого не писал.   -  person Chris James    schedule 04.02.2009


Ответы (6)


Вот решение, как бы глупо оно ни было:

Имейте такое же создание окна, а затем вместо вызовов для показа и привязки к:

    currentPopupWindow.render(document.body);
    currentPopupWindow.alignTo(diccon, "tl", [40, 80]);

                currentPopupWindow.show(false, function() {
            var el = Ext.get(termim);
            currentPopupWindow.setWidth(el.getWidth(true)+150);
        });
person Chris James    schedule 04.02.2009

Быстрый поиск в Google подсказал мне, что вы не единственный пользователь extJS, сталкивающийся с этим. (См. здесь и здесь и здесь три примера.) Лучше всего размещать сообщения на их форумах так что они могут либо исправить свою ошибку, либо обойти ошибку IE7, в зависимости от того, что произойдет.

person Eddie    schedule 04.02.2009

Похоже, это как-то связано с этим, не то, чтобы я понял..

http://weblogs.asp.net/rajbk/archive/2006/11/29/ie-6-7-unspecified-error-when-accessing-offsetparent-javascript.aspx

person Chris James    schedule 04.02.2009

ки прав. Проблема кроется в якоре. Используйте alignTo, и исключение исчезнет. Извините, ки, пытался «поднять» ваш ответ, но не смог. У меня нет никакой репутации. :)

Атель

person Community    schedule 26.02.2009

На ваш второй вопрос: удаление строки anchorTo устраняет ошибку. Я все еще хотел бы привязаться к этому, так что это не отличное решение!

Используйте alignTo и отслеживайте события прокрутки и колесика мыши и соответствующим образом обновляйте позицию, и это то же самое, что и anchorTo. Это обходной путь, который я нашел.

Атель

person Community    schedule 11.03.2009

Попробуйте добавить:

shim: false

к списку параметров всплывающего окна.

person Thevs    schedule 22.07.2009