2012-10-01 11 views
21

Używam wtyczki wyświetlającej kalendarz wydarzeń. Działa wspaniale we wszystkich przeglądarkach z wyjątkiem trybu zgodności IE. Gdy ta opcja jest zaznaczona, kalendarz znika. Uważam, że jest to błąd JS.SCRIPT1028: Oczekiwany identyfikator, ciąg lub numer

IE Debugger Błąd:

element.qtip({ 
    content: { 
    text: event.description, 
    title: { 
    text: 'Description', 
    } 
    }, 
position: { 
    at: 'top right', 
    adjust: { 
    x: 0, y: 30 
    }, 
}, 

W moim edytora plugin jest to kod:

element.qtip({ 
    content: { 
    text: event.description, 
    title: { 
    text: '<?php _e('Description', 'event_espresso'); ?>', 
    } 
}, 
position: { 
    at: 'top right', 
    adjust: { 
    x: 0, y: 30 
    }, 
}, 

Nie jestem świetny w debugowania więc każda pomoc będzie mile widziane.

Jeśli to pomoże, oto strona: http://www.mbausa.org/calendar/

+0

Wskazówka: nawiasy są parami. –

+5

Masz ',' zbyt dużo ... – Shikyo

+0

dodając notatkę boczną, ten błąd występuje również, gdy masz "" jako identyfikator (klucz tablicy). –

Odpowiedz

40

Internet Explorer mają kłopoty z tylną przecinki w obiektach i tablic;

title: { 
    text: 'Description', //<-- 
} 

Prawdopodobnie chcesz:

title: { 
    text: 'Description' 
} 
+0

To jest niewiarygodne: zarówno ie8, jak i ie9 renderują mój kod gmap3 bez problemów, ale ie7 narzeka na ten błąd z powodu przecinka końcowego. THX uratowałeś moje popołudnie. – microspino

+2

+1 dzięki mate to naprawdę mi pomogło! – IamStalker

+1

Dziękujemy! To naprawiło moją zgodność z IE8. – Kelly

3

Zamiast pracy trybie zgodności rundzie można wymusić tryb non-kompatybilności z ...

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /> 

w tagu <head>.

7

Stara wersja IE nie obsługuje nieprawidłowo sformatowanych ciągów JSON.

Nigdy nie powinieneś wstawiać przecinka, separatora, gdy nie ma żadnych nawiasów klamrowych [', pochwały' {'lub nowe właściwości obiektu.

Spróbuj:

position: { 
at: 'top right', 
adjust: { 
    x: 0, y: 30 
    } // <-- no comma here 
}, 

zamiast:

position: { 
at: 'top right', 
adjust: { 
    x: 0, y: 30 
    }, // <-- comma here 
}, 
+0

Dziękujemy! To zadziałało! Musiałem też usunąć przecinek po tekst: " ', Widzę teraz kalendarz w trybie zgodności, ale dostaję nowy błąd: Błąd: Obiekt nie obsługuje właściwości lub delegata metody – user1712040

+0

Dzięki! Ciągle o tym zapominam ... Wymyśl jeszcze jedną straconą godzinę dla IE! Co? Czy MicroSoft otrzymuje wynagrodzenie z prowizji? – exoboy

7

Istnieją 2 najczęstsze przyczyny tego błędu. Albo niepotrzebny przecinek, gdy jest nieodpowiedni, albo użycie słowa zastrzeżonego JavaScript. W twoim przypadku masz 2 niepotrzebne przecinki. Poniżej znajduje się poprawny fragment kodu z komentarzami, w których usunąłem przecinki.

element.qtip({ 
    content: { 
    text: event.description, 
    title: { 
    text: '<?php _e('Description', 'event_espresso'); ?>' // Removed Comma 
    } 
}, 
position: { 
    at: 'top right', 
    adjust: { 
    x: 0, y: 30 
    } // Removed Comma 
}, 

Właściwie zrobiłem post na blogu (i wideo) wyjaśniający błąd i pokazujący przykłady i poprawki. Można go znaleźć tutaj: http://mikemclin.net/fixing-error-script1028-expected-identifier-string-or-number/

+0

Miałem ten błąd z parsleyjs remote 2.x - IE <10 spowodowałoby awarię, ponieważ użyty klucz był nazywany * default * i jest zarezerwowanym słowem. zmieniłem na "domyślny" i działa na wypadek, gdybyś się zastanawiał. również pchnął dla niego poprawkę na github. – joe

1

Inny możliwy błąd wynika z użycia zarezerwowanego słowa kluczowego jako klucza skrótu.

IE8 errors when defining a Javascript object?

Gdy używam {class:'icon'} Chciałbym również uzyskać ten błąd. Inne słowa kluczowe IE8 prawdopodobnie też by zrobiły to samo.

Powiązane problemy