2015-06-15 15 views
5

Tôi có một trang web với một accordion và một số javascript. Trong Firefox mọi thứ đang làm việc như bình thường, nhưng trong IE11 tôi nhận được lỗiJavaScript trong IE11 cho tôi lỗi tập lệnh 1003

SCRIPT1003: Dự kiến ​​':'

tôi thu hẹp nó xuống để đoạn mã này trong file .js của tôi:

var nmArray = new Array(); 

function saveplayers() { 
    var x; 

    for (x=0;x<32;x++) { 
    var y = "i"+eval(x+1); 
    nmArray[x]=document.getElementById(y).value; 
    } 
    var request = $.ajax({ 
    type: "POST", 
    url: "savep.php", 
    data: ({ nmArray }), 
    cache: false 
    }); 
} 

Các lỗi phàn nàn nên có một dấu hai chấm sau nmArray trong ({ nmAray })

Nếu tôi mất chức năng này ra, trang web của tôi làm việc một lần nữa. Để gỡ lỗi, tôi đã loại bỏ HTML của mình và tôi thậm chí không gọi chức năng này. Tôi chỉ bao gồm tệp .js.

+0

Cảm ơn các bạn đã trả lời nhanh. Bây giờ tôi hiểu tại sao nó hoạt động trong FF chứ không phải trong IE. – notaverygoodprogrammer

Trả lời

4

Cú pháp ({nmArray}) trong trình duyệt hỗ trợ ES6 là phím tắt cho {nmArray: nmArray}. IE11 không hỗ trợ tính năng này (dựa trên các lỗi mà bạn đang nhận được), vì vậy bạn sẽ phải viết lại nó như:

data: ({ nmArray: nmArray }), 

Xem ở đây cho một ví dụ: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#New_notations_in_ECMAScript_6

lưu ý rằng trong này trường hợp bạn có thể bỏ qua gói ()

data: { nmArray: nmArray }, 
+0

IE ngọt ngào. Cảm ơn bạn đã không tuân theo các tiêu chuẩn ** AGAIN ** –

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