/ / IE Niepoprawny argument dla jquery - jquery, Internet-explorer, jqgrid, invalid-argument

IE Nieprawidłowy argument z jquery - jquery, Internet Explorer, jqgrid, invalid-argument

Mam działającą aplikację portletowąbezbłędnie w Firefox i Chrome, ale bombarduje w IE 8 i 9, ALE tylko jeśli mam 5 lub więcej instancji portletu na stronie portalu. Jeśli na stronie znajdują się 4 lub mniej instancji portletu, działa również dobrze w IE.

Błąd, który widzę, gdy mam ponad 5 instancji portletu na stronie, to:

SCRIPT87: Niepoprawny argument. jquery-1.5.2.min.js, wiersz 16, znak 25442

Kod wykorzystuje jQuery i kilka wtyczek, a mianowicie jqGrid. Oto, co do tej pory próbowałem rozwiązać, ale żaden z nich nie zrobił żadnej różnicy:

  1. Uaktualniono biblioteki jQuery i jQuery-UI. Kod używa odpowiednio 1.5.2 i 1.7.2. Aktualizacja do najnowszych wersji nie miała znaczenia.
  2. Uaktualniono bibliotekę jqGrid. Kod używa wersji 4.1.2. Aktualizacja do 4.3.2 nie miała znaczenia.
  3. Uaktualniono wtyczkę bgiframe. Kod używa wersji 2.1. Aktualizacja do 2.1.3 nie miała znaczenia.

Ponieważ jest to IE, bardzo trudno jest debugować, aby zobaczyć, co się dzieje.

Czy ktoś widział takie zachowanie wcześniej lub miał pojęcie, co się dzieje?

AKTUALIZACJA:

OK, zamieniłem minimalne wersje plików jQuery na niezminimalizowane. Oto błąd, który widzę, gdy mam ponad 5 instancji portletu na stronie w IE 8:

Message: Invalid argument.
Line: 2105
Char: 5
Code: 0
URI: https://nasa-iceint.nasa.gov/portal/ice-theme/js/jquery-1.5.2.js

Oto odpowiedni kod z pliku jQuery:

if ( set ) {
// convert the value to a string (all browsers do this but IE) see #1070
elem.setAttribute( name, "" + value );
}

Jakieś pomysły?

Odpowiedzi:

4 dla odpowiedzi № 1

Zrozumiałem, co tu się dzieje nie tak. Okazuje się, że dynamiczne ładowanie pliku CSS w IE, gdy jest już dużo załadowanego CSS, może powodować problemy. Widzieć Dynamiczne ładowanie arkusza stylów css nie działa w IE

Mam nadzieję, że pomoże to komuś, kto napotka ten sam problem.


0 dla odpowiedzi nr 2

Być może twoja strona dodaje JSON, który nie jest dobrze sformułowany.

var jsonThatWorksOnFirefoxAndChrome = {
first:"ok",
last: "not ok, remove the comma after this string to fix it",
}

Chrome i Firefox po prostu zignorują ostatni przecinek.


0 dla odpowiedzi № 3

Sprawdź także konflikty jQuery i upewnij się, że dołączasz tylko jedną wersję jQuery i tylko raz.