2012-10-01 40 views
21

Tôi đang chạy plugin hiển thị lịch sự kiện. Nó hoạt động tốt trong tất cả các trình duyệt ngoại trừ trong chế độ tương thích IE. Khi tùy chọn đó được chọn, lịch sẽ biến mất. Tôi tin rằng đó là lỗi JS.SCRIPT1028: Số nhận dạng dự kiến, chuỗi hoặc số

IE Debugger Lỗi:

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

Trong biên tập Plugin tôi đây là đoạn code:

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

Tôi không giỏi gỡ lỗi vì vậy bất kỳ trợ giúp sẽ được đánh giá cao.

Nếu nó giúp, đây là trang: http://www.mbausa.org/calendar/

+0

Mẹo: dấu ngoặc đơn thành cặp. –

+5

Bạn có một ',' quá nhiều ... – Shikyo

+0

thêm ghi chú bên, lỗi này cũng xảy ra khi bạn có "" làm số nhận dạng (khóa mảng). –

Trả lời

40

Internet Explorer có vấn đề với trailing dấu phẩy trong các đối tượng và mảng;

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

Bạn có thể muốn:

title: { 
    text: 'Description' 
} 
+0

Điều này là không thể tin được: cả hai ie8 và ie9 làm cho mã gmap3 của tôi mà không có vấn đề nhưng ie7 phàn nàn với lỗi đó vì dấu phẩy. THX bạn đã cứu buổi chiều của tôi. – microspino

+2

+1 nhờ bạn đời này thực sự đã giúp tôi! – IamStalker

+1

Cảm ơn bạn! Điều này cố định khả năng tương thích IE8 của tôi. – Kelly

3

Thay vì việc chế độ tương thích vòng bạn có thể buộc chế độ không tương thích với ...

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

trong thẻ <head> của bạn.

7

Phiên bản cũ của IE không hỗ trợ chuỗi JSON có dạng mal.

Bạn không bao giờ nên đặt dấu phẩy ',' dấu tách khi không có dấu ngoặc ôm '[', lũy thừa '{' hoặc thuộc tính đối tượng mới xuất hiện sau đó.

Hãy thử:

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

thay vì:

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

Cảm ơn bạn! Điều này đã làm việc! Tôi cũng phải xóa dấu phẩy sau văn bản: ' ', Tôi có thể xem lịch hiện ở chế độ Tương thích nhưng tôi gặp lỗi mới: Lỗi: Object không hỗ trợ thuộc tính hoặc phương pháp' ủy quyền ' – user1712040

+0

Cảm ơn! Tôi cứ quên điều này ... Hãy viết thêm một giờ lãng phí cho IE! Gì? MicroSoft có được trả tiền hoa hồng không? – exoboy

7

Có 2 nguyên nhân phổ biến cho lỗi này. Có dấu phẩy sau khi không phù hợp hoặc sử dụng từ dành riêng cho JavaScript. Trong trường hợp của bạn, bạn có 2 dấu phẩy không cần thiết. Dưới đây là đoạn mã đúng, với các nhận xét tôi đã xóa dấu phẩy.

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

Tôi thực sự đã đăng một bài đăng trên blog (và video) giải thích lỗi và hiển thị các ví dụ và bản sửa lỗi. Nó có thể được tìm thấy ở đây: http://mikemclin.net/fixing-error-script1028-expected-identifier-string-or-number/

+0

Tôi gặp lỗi này với parsleyjs từ xa 2.x - IE <10 sẽ bị lỗi vì khóa được sử dụng được gọi là * mặc định * và đó là từ dành riêng. tôi đã thay đổi thành 'mặc định' và nó hoạt động trong trường hợp bạn đang tự hỏi. cũng đã đẩy một sửa chữa trên github cho nó. – joe

1

Một lỗi khác có thể là do từ khóa được dành riêng đang được sử dụng làm khóa băm.

IE8 errors when defining a Javascript object?

Khi tôi sử dụng {class:'icon'} Tôi cũng sẽ nhận được lỗi này. Các từ khóa IE8 khác có lẽ cũng sẽ làm như vậy.

Các vấn đề liên quan