Я работаю в сети, где интенсивно использую запросы AJAX для
сервис XML. На самом деле, мой веб-интерфейс с почти
нет сервера вообще и использует AJAX для связи с
бэк-энд.
Все шло нормально (я разработал и протестировал в Ubuntu 9.04
и Firefox 3.0 в качестве браузера).
Однажды я решил посмотреть, как мой веб сделал в IE8 ...
ужас!
Ничего не работает, как это было чудесно в Firefox.
Чтобы быть более конкретным, Request.HTML не работали.
Как я уже сказал, моя сеть сильно зависела от этого, поэтому ничего не получалось.
Я провел день, пытаясь запустить что-то, но мне не повезло ..
Единственный вывод, к которому я пришел, заключался в том, что XML
неправильно проанализирован
(Надеюсь, я ошибаюсь). Давайте перейдем к коду:
var req = new Request.HTML({
url: 'service/Catalog.groovy',
onSuccess: function(responseTree, responseElements) {
var catz = responseElements.filter('category');
catz.each(function(cat){
// cat = $(cat);
var cat_id = cat.get('id');
var subcategory = cat.getElement('subcategory');
alert(cat_id);
alert(cat.get('html'));
alert(subcategory.get('html'));
}
},
onFailure: function(){...}
});
например, этот кусок кода.
В Firefox это работало отлично. Он предупредил идентификатор (например, 7),
затем он показал содержимое элемента категории, например:
<subcategory id='1'>
<category_id>7</category_id>
<code>ACTIO</code>
<name>Action</name>
</subcategory>
и затем он показал содержимое некоторого внутреннего элемента, в данном случае:
<category_id>7</category_id>
<code>ACTIO</code>
<name>Action</name>
В IE8 первое оповещение работало нормально (оповещено 7)
но следующее предупреждение (alert (cat.get ('html'));) выдало пустую строку
и последний бросил исключение ... он сказал что-то о подкатегории
ноль.
На этом я заключил, что все элементы были проанализированы
правильно
в Firefox, но в IE8 я получил только теги и атрибуты,
все остальное
был совершенно неправ (фактически отсутствует). Я имею в виду, внутреннее содержание
все
элементы ответа куда делись!
Другой факт, который вы могли бы использовать: этот код:
alert(cat.get('tag')); resulted in
Firefox: category
IE8: /category <-----------(?)
хм что еще ...
о да ... строка, которую вы прокомментировали выше (cat = $(cat);
) была
что-то
Я пытался сделать, чтобы это исправить. Я прочитал в документации MooTools, что нужно IE
явно позвонить
$
функция на элементах, чтобы получить всю магию Элементов ... но это
ничего не исправить.
Я был в таком отчаянии ... Я даже возился с mootools.js
кодом
ОК, так что ...
Я хочу, чтобы вы, дорогие профессионалы, помогли мне решить эту проблему,
потому что мне действительно нужно, чтобы веб работал в IE8, и на самом деле я выбрал
mootools забыть о проблемах совместимости ...
ps: если что-то не понятно, пожалуйста, спросите! Буду признателен за любую помощь: D