14

Tôi đã phát triển ứng dụng web của mình bằng cách kiểm tra nó trên IE. Mặc dù nó hoạt động tốt trên tất cả các trình duyệt viz. Chrome, Firefox, Safari nhưng khi nói đến IE thì có một hành vi lạ.Ứng dụng web Backbone.js không sử dụng được trên Internet Explorer

Đôi khi ứng dụng tải và một số lần một trang trống được tải như thể không có sự kiện "liên kết" nào có hiệu lực.

Và thời gian may mắn khi ứng dụng tải, bảng điều hướng điều hướng bị thiếu một phần. Tôi không thể hiển thị mã cho bạn ngay bây giờ vì tôi không chắc chắn phần nào sẽ hiển thị và nơi tôi đang làm sai.

Nếu bất kỳ ai trong bạn có thể cung cấp cho tôi danh sách kiểm tra những gì cần kiểm tra và công cụ nào là lý tưởng để gỡ lỗi trên IE thì điều đó thật tuyệt.

Và nếu có ai trong số các bạn có thể cho tôi biết các lỗi backbone.js phổ biến nhất trên IE thì điều đó cũng sẽ hữu ích.

PS: Phiên bản của IE Tôi đang thử nghiệm với: IE8

Trả lời

24

Một số vấn đề trong IE là:

dấu phẩy Trailing trên Objects:

Ví dụ:

App.model = Backbone.Model.extend({ 
    url: "/foo/bar", 

    validate: function() { 
    }, 
}); 

nên là:

App.model = Backbone.Model.extend({ 
    url: "/foo/bar", 

    validate: function() { 
    } 
}); 

Việc sử dụng các chức năng mà không có sẵn trong IE như lastIndexOf()

Một điều thứ ba để kiểm tra là HTML không hợp lệ. IE có thể đặc biệt cầu kỳ về cấu trúc HTML của bạn. Hãy chắc chắn rằng tất cả các thẻ mở hoặc có một thẻ đóng phù hợp, hoặc là tự đóng cửa với />

Nếu bạn đang sử dụng phương pháp JSON như JSON.parse()JSON.stringify() sau đó hãy chắc chắn bao gồm thư viện JSON như JSON2.

+7

+1 Trailing dấu phẩy và JSON là những dấu phẩy lớn, khác mà tôi đã chạy là chức năng 'trim' trên Strings –

+1

Tôi sử dụng coffeescript nên không có vấn đề gì với dấu phẩy, đối với tôi đó là thẻ đóng' /> ', nhưng cố định :) –

+0

Một số khác là việc sử dụng html5 shiv trong trường hợp dự án nằm trong html5. – cherouvim

3

Nếu bạn đang chạy Windows 7, bạn nên nâng cấp lên IE9. Sau đó, bạn có thể sử dụng các công cụ phát triển IE để gỡ lỗi trang của bạn. Nó tương tự như sử dụng firebug hoặc các công cụ phát triển webkit. Với các công cụ phát triển IE, bạn cũng có thể mô phỏng lại IE7.

Nếu bạn đang chạy XP, bạn sẽ nhận được Windows 7 và sau đó nâng cấp lên IE9.

Ngoài ra, bạn nên sử dụng một cái gì đó như es5 shims. Điều này cung cấp chức năng javascript hiện diện trong các trình duyệt hiện đại, nhưng không có trong các phiên bản cũ của IE.

+5

Điều này khá trễ để nhận xét nhưng IE9/10 thi đua IE7 là * không * giống như trên thực tế chạy IE7 trên XP. Bạn sẽ nhận được kết quả khác nhau. – Goro

+2

Tôi sẽ làm điều đó. Tôi đã nhìn thấy cuộc sống thực IE8 làm những việc khác nhau với IE11 "chế độ IE8". – Matthew

0

Ràng buộc động không được hỗ trợ bởi MSIE < 10, nhưng nó hoạt động trong MSIE 10. Mã jQuery như .show(), hide() có thể hoạt động trong liên kết tĩnh, nhưng trong trường hợp Backbone, Node như khung làm việc bằng cách sử dụng năng động ràng buộc, templating và công nghệ khác có thể không hoạt động trên nó MSIE 10 sẽ có thể bắt trên nó

+1

Bạn có thể chỉ một số liên kết nguồn không? – lulalala

0

Tôi đã tìm thấy các mẫu HTML của bạn cần phải được hình thành HTML. Chrome và Firefox có vẻ tha thứ hơn nhiều nhưng với IE 8, sự bao gồm của một xấu gây ra một cái nhìn trống sẽ được hiển thị.

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