Korzystanie ExtJS 2.2.1, mam element kontenera, który powinien załadować kawałek HTML z serwera przy użyciu:ExtJS: autoLoad nie działa w IE
autoLoad: { url: 'someurl' }
to działa prawidłowo w Firefoksie , ale dla IE7 powoduje to błąd składni w ext-all-debug.js na linii 7170:
this.decode = function(json){
return eval("(" + json + ')');
};
Naprawiłem to obracając tę funkcję w tym:
this.decode = function(json){
return eval('(function(){ return json; })()');
};
Następnie autoLoad działa dobrze w obu przeglądarkach, ale jest kilka dziwnych błędów, a poza tym naprawdę nie chcesz tego naprawiać w bibliotece ExtJS, ponieważ będzie to niemożliwe do zachowania (szczególnie w minified ext-all.js, który jest jak pół megagwiazda Javascript w jednym wierszu).
Nie mogłem znaleźć wiele informacji na temat tego błędu.
Wariacje że próbowałem:
// With <script> tags around all the HTML
autoLoad: { url: 'someurl', scripts: true }
// With <script> tags around all the HTML
autoLoad: { url: 'someurl', scripts: false }
I versa wizy bez <script>
tagów. W kodzie HTML też nie ma kodu JavaScript, ale powinno być możliwe, ponieważ ostatecznie użyjemy Javascript wewnątrz zwróconego kodu HTML.
Problem nie leży w HTML, ponieważ nawet z najprostszym możliwym HTML, błąd jest taki sam.
AKTUALIZACJA - Reakcja na Donovan:
Najprostszym przypadkiem gdzie jest to stosowane jest to jedno:
changeRolesForm = new Ext.Panel({
height: 600,
items: [{ autoScroll: true, autoLoad: WMS.Routing.Route("GetRolesList", "User") + '?userID=' + id}]
});
Nie ma tu zaangażowany magazyn danych. Typ odpowiedzi to także text\html
, a nie json, więc nie można go mylić. Jak już wspomniano, działa dobrze w Firefoksie, aw Firefoksie pełni tę samą funkcję eval
, ale bez błędu. Więc nie jest tak, że Firefox podąża inną ścieżką wykonania, to jest to samo, ale bez błędu na eval
.
Żadna z "odpowiedzi" nie odnosi się do faktu, że błąd występuje tylko w IE. Nadal doświadczamy tego samego w Ext 3.3.0. –
Cześć Julian, jeśli spojrzysz w FireBug, co jest zwracane z serwera? Ext wykonuje połączenie z serwerem, po którym umiera w IE, byłoby pomocne, gdyby żądanie i odpowiedź zostały wysłane (w tym nagłówki). –
Polecam używanie Charles Proxy, aby uzyskać informacje o Robu, ponieważ narzędzia do debugowania IE są okropne –