2013-08-20 35 views
26

Tôi đang sử dụng jquery 2.0.2 và tôi có một lỗi trong IE8:Object không hỗ trợ addEventListener IE8 trong jquery

Object không hỗ trợ tài sản hoặc phương pháp 'addEventListener' jquery.min.js, dòng 4 ký tự 6105

Bằng cách nào đó tất cả các mã của tôi đều tốt với chrome và firefox, ngoại trừ ie8.

Bắt các lỗi này cũng dẫn đến:

Giá trị của bất động sản '$' là null hoặc không xác định, không phải là một đối tượng Function

tôi bao gồm các truy vấn trên đầu trang của file js khác Tôi đã sử dụng:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 

Tôi biết Jquery2 + doesnt support IE8, nhưng tôi không muốn sử dụng phiên bản thấp hơn của Jquery.

+0

đoạn mã gây ra lỗi này là gì? – AdityaSaxena

Trả lời

38

jQuery 2.x đã giảm hỗ trợ cho IE < 9, vì vậy nếu bạn muốn hỗ trợ IE7 & 8 sau đó sử dụng phiên bản mới nhất của chi nhánh 1.x - bây giờ 1.11.0

Từ jQuery

jQuery 2.x có cùng API với jQuery 1.x, nhưng không hỗ trợ Internet Explorer 6, 7 hoặc 8. Tất cả các ghi chú trong Hướng dẫn nâng cấp jQuery 1.cũng áp dụng tại đây. Vì IE 6/7/8 vẫn còn tương đối phổ biến, chúng tôi khuyên bạn nên sử dụng phiên bản 1.x trừ khi bạn chắc chắn không có người dùng IE 6/7/8 nào đang truy cập trang web.

+0

Hãy nhớ rằng sự khác biệt giữa jQuery 1.x và 2.x không chỉ hỗ trợ không được hỗ trợ cho MartinR

11

jQuery 1.9 tương đương với jQuery 2.0 với chức năng, sửa lỗi, v.v. Cả hai đều được phát triển tích cực.

Sự khác biệt duy nhất là mã cung cấp khả năng tương thích IE đã bị xóa để làm cho kích thước tệp và tốc độ thực thi tốt hơn.

Nếu bạn muốn sử dụng các phiên bản jQuery khác nhau tùy thuộc vào trình duyệt, bạn có thể sử dụng thẻ có điều kiện, như thế này.

<!--[if !IE]> --> 
    <script src="jquery-2.0.0b2.js"></script> 
<!-- <![endif]--> 

<!--[if IE]> 
    <script src="jquery-1.9.1.js"></script> 
<![endif]--> 

Lưu ý tô sáng styntax. Đầu tiên chỉ là hai chú thích là anh chị em của thẻ script, và sau đó là một chú thích với thẻ script bên trong nó. Trình duyệt chỉ cần thực hiện theo các quy tắc phân tích cú pháp DOM và tải/thực thi tập lệnh đầu tiên. IE deviates và sẽ không thực hiện đầu tiên, nhưng sẽ thực hiện sau này.

0

jQuery 2.x đã bỏ hỗ trợ cho IE < 9. Tuy nhiên, bạn có thể sử dụng nhiều phiên bản jQuery trong cùng một trang web.

Điều này có thể được thực hiện bằng cách sử dụng jQuery.noConflict()

+2

bạn nên sử dụng tải tập lệnh có điều kiện theo phiên bản IE ... – Yuki

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