2012-10-01 61 views
21

我正在運行一個顯示事件日曆的插件。除IE兼容模式外,它適用於所有瀏覽器。當該選項被選中時,日曆消失。我相信它是一個JS錯誤。SCRIPT1028:預期標識符,字符串或數字

IE調試錯誤:

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

在我的插件編輯這是代碼:

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

我不是偉大的調試所以任何幫助,將不勝感激。

如果有幫助,這裏是頁:http://www.mbausa.org/calendar/

+0

提示:括號成對出現。 –

+5

你有一個'',太多了...... – Shikyo

+0

加了一個旁註,當你有一個標識符(數組鍵)時,這個錯誤也會發生。 –

回答

40

Internet Explorer中有尾隨的對象和數組逗號煩惱;

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

你可能想:

title: { 
    text: 'Description' 
} 
+0

這是令人難以置信的:ie8和ie9都使我的gmap3代碼沒有問題,但ie7因爲後面的逗號而抱怨該錯誤。 THX你救了我的下午。 – microspino

+2

+1謝謝,這真的幫助我! – IamStalker

+1

謝謝!這固定了我的IE8兼容性。 – Kelly

3

而不是工作全面兼容模式下,你可以在你的<head>標籤強制非兼容模式...

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

7

舊版本的IE不支持格式錯誤的JSON字符串。

當沒有大括號[',accolades'{'或新的對象屬性出現後,您不應該放置逗號','分隔符。

嘗試:

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

代替:

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

謝謝!這工作!我也不得不在 text:'<?php _e('Description','event_espresso'); ?>」, 我現在可以看到日曆在兼容模式下,但我得到一個新的錯誤: 錯誤:對象不支持屬性或方法‘代理’ – user1712040

+0

謝謝!我一直在忘記這個......爲IE瀏覽器再浪費一個小時!什麼? MicroSoft是否獲得佣金支付? – exoboy

7

有這個錯誤2個的常見原因。在不恰當的時候使用尾隨逗號,或者使用JavaScript保留字。在你的情況下,你有2個不必要的逗號。以下是正確的代碼片段,其中有刪除逗號的註釋。

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

我實際上做了一個博客文章(和視頻),解釋錯誤並顯示示例和修復。它可以在這裏找到:http://mikemclin.net/fixing-error-script1028-expected-identifier-string-or-number/

+0

我有這個錯誤與parsleyjs遠程2.x - IE <10將崩潰,因爲使用的密鑰被稱爲*默認*,它是一個保留字。我改變爲'默認',它的作品,如果你想知道。也推動了對github的修復。 – joe