2012-10-01 17 views
21

Sto eseguendo un plug-in che visualizza un calendario degli eventi. Funziona alla grande in tutti i browser ad eccezione della modalità di compatibilità IE. Quando questa opzione è selezionata, il calendario scompare. Credo che sia un errore JS.SCRIPT1028: identificativo, stringa o numero previsto

IE Debugger Errore:

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

nel mio editor Plugin Questo è il codice:

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

io non sono grande a debug in modo che qualsiasi aiuto sarebbe apprezzato.

Se aiuta, ecco la pagina: http://www.mbausa.org/calendar/

+0

Suggerimento: parentesi venire in coppia. –

+5

Hai un ',' too much ... – Shikyo

+0

aggiungendo una nota a margine, questo errore si verifica anche quando hai "" come identificatore (chiave dell'array). –

risposta

40

Internet Explorer ha problemi con trailing virgole negli oggetti e array;

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

probabilmente si vuole:

title: { 
    text: 'Description' 
} 
+0

Incredibile: sia ie8 che ie9 rendono il mio codice gmap3 senza problemi ma ie7 si lamenta di quell'errore a causa della virgola finale. THX hai salvato il mio pomeriggio. – microspino

+2

+1 grazie amico questo mi ha davvero aiutato! – IamStalker

+1

Grazie! Questo ha risolto la mia compatibilità con IE8. – Kelly

3

piuttosto che lavorare modalità di compatibilità turno è possibile forzare la modalità non-compatibilità con ...

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

nel tag <head>.

7

La versione precedente di IE non supporta la stringa JSON malformata.

Non si dovrebbe mai mettere una virgola "," separatore quando nessuna parentesi "[", riconoscimenti "{" o nuove proprietà dell'oggetto vengono dopo.

Prova:

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

invece di:

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

Grazie! Questo ha funzionato! Ho anche dovuto rimuovere la virgola dopo il testo : ' ', Posso vedere il calendario ora in modalità Compatibilità ma sto ricevendo un nuovo errore: Errore: Oggetto non supporta la proprietà o il metodo' delegate ' – user1712040

+0

Grazie! Continuo a dimenticarlo ... Prendi un'altra ora sprecata per IE! Che cosa? MicroSoft viene pagato su commissione? – exoboy

7

Ci sono 2 cause comuni per questo errore. O avendo una virgola finale quando inappropriata, o usando una parola riservata JavaScript. Nel tuo caso, hai 2 virgole non necessarie. Di seguito è riportato lo snippet di codice corretto, con i commenti dove ho rimosso le virgole.

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 
}, 

In realtà ho fatto un post di blog (e video) spiegando l'errore e mostrando esempi e correzioni. Può essere trovato qui: http://mikemclin.net/fixing-error-script1028-expected-identifier-string-or-number/

+0

ho avuto questo errore con parsleyjs remote 2.x - IE <10 si bloccherebbe perché una chiave usata è stata chiamata * default * ed è una parola riservata. ho cambiato in 'predefinito' e funziona nel caso ve lo stiate chiedendo. anche spinto una correzione su github per questo. – joe

1

Un altro errore possibile è dovuto alla parola chiave riservata utilizzata come chiave hash.

IE8 errors when defining a Javascript object?

Quando uso {class:'icon'} vorrei anche ottenere questo errore. Altre parole chiave di IE8 probabilmente farebbero lo stesso anche.

Problemi correlati