Ajax ломает фрейм-сет только в IE

У меня проблема с поломкой фрейм-набора, и я получил небольшую помощь здесь, на форуме. Теперь я наконец-то отследил, когда дела пойдут на юг, и вот моя текущая проблема.

1 У меня есть набор фреймов с Top, Menu и Main 2. Ссылки в Menu открывают представления в Main 3. Это разбивает на сохранение документов в Main. После сохранения все ссылки в меню откроются в новом окне.

НО - И вот действительно странная вещь, которую я обнаружил после двух дней проверки базовой цели и тому подобное.

Я ТОЛЬКО ломаюсь, если я изменяю значение, которое запускает Ajax-вызов. Если я добавляю комментарий в поле комментария или меняю числовое значение, все хорошо. Я могу сохранить и набор кадров в порядке и хорошо. Если я изменю раскрывающийся список, который запускает вызов Ajax перед сохранением, то мой набор фреймов ломается.

Это только IE (7 и 8), и Firefox не имеет этой проблемы.

Это пример моего кода Ajax (у меня около 4 различных вызовов)

function fillUtmelding(refnr){
                 var f = document.forms[0];

     var url = getDbUrl() + '/(FinnBeholdningValg)?OpenAgent&refnr=' + refnr + "&dbid=C1256B7D0033B1DF" + "&" + Math.round(Math.random() * 500);

       var fondOppslag = new Ajax.Request(url, {
        method: 'get',
        onComplete: function(req){
            var liste = req.responseText;

            var startListe = liste.split(';');

                arrListe = startListe[0].split('$');
                                                               f.f.value = arrListe[0];
                                                               f.fisin.value = arrListe[1];
                                                               f.andeler.value = arrListe[2];

            for (j = 1; j < 14; j++) {
                name = "f_" + j;
                fisin = "fisin_"+ j;
                                                               andeler = "andeler_" +j;                                             

                    var nyListe = startListe[j].split('$')

                    if (nyListe[1] != 'Plassering'){
                                                                              f[name].value = nyListe[0];
                                                                              f[fisin].value = nyListe[1];
                                                                              f[andeler].value = nyListe[2];
                                                                              }

            }
        }
    });
}

Edit: у меня нет проблем с вызовами ajax, насколько я вижу. Я возвращаю значения и использую их по назначению. Может ли быть какая-то настройка keepAlive или что-то подобное?

1 ответ

Решение

Где-то в коде JS из правого фрейма была функция внутри, которая была:

name = "(something)";

Конечно, без указания вар. IE сошел с ума, потому что, похоже, эта простая строка изменила имя фрейма.... затем, когда он щелкнул по другому фрейму, он не смог его найти, и, таким образом, открыл содержимое в новом окне.

Проблема исправлена.

PS. Будьте осторожны с тем, что вы используете для имени переменной:)

Другие вопросы по тегам