2013-06-30 27 views
6

Tôi đang gặp phải một số vấn đề với IE7/IE8 và jQuery. Mã của tôi hoạt động trong IE 10, FF, Chrome, Safari, Mobile Safari, Chrome di động.IE8 đang ném lỗi với jQuery

Hiện tại, để gỡ lỗi, tôi đã xóa tệp JS của riêng mình. Vì vậy, đây là mã:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> 

Không có JS nào khác được tham chiếu trên trang này. Tôi đã xóa tất cả các tham chiếu JS khác và không có JS nào được thực hiện trên chính trang đó. Khi tải trang web trong IE8, tôi nhận được lỗi này:

Line: 4 
Error: Object doesn't support this property or method 

enter image description here

Các debugger cho thấy ở trên. Không chắc chắn vấn đề ở đâu. Bất kỳ trợ giúp nào cũng được đánh giá rất cao.

P.S. - Đây là nỗ lực phát triển web 'nghiêm túc' đầu tiên của tôi và tôi thấy bây giờ tại sao IE lại bị ghét nhiều trong cộng đồng dev.

Trả lời

13

jQuery 2.0 đã giảm hỗ trợ cho một số trình duyệt. Xem các bài phát hành tại http://blog.jquery.com/2013/04/18/jquery-2-0-released/

Trích dẫn từ bài:

No more support for IE 6/7/8: Remember that this can also affect IE9 and even IE10 if they are used in their “Compatibility View” modes that emulate older versions. To prevent these newer IE versions from slipping back into prehistoric modes, we suggest you always use an X-UA-Compatible tag or HTTP header. If you can use the HTTP header it is slightly better for performance because it avoids a potential browser parser restart.

Reduced size: The final 2.0.0 file is 12 percent smaller than the 1.9.1 file, thanks to the elimination of patches that were only needed for IE 6, 7, and 8. We had hoped to remove even more code and increase performance, but older Android/WebKit 2.x browsers are now the weakest link. We’re carefully watching Android 2.x market share to determine when we can cross it off the support list, and don’t expect it to take very long.

Giữ jQuery 1,9 (Sửa 2015/11/17:. JQuery 1.11.3 là phiên bản 1.x hiện tại của jQuery) nếu IE 6/7/8 là một mối quan tâm.

+0

Đôi khi, bạn cần phải tìm đến nguồn gốc của mã để xác định vấn đề này. Cảm ơn! –

+0

CẢM ƠN BẠN! Tôi đã đập đầu vào tường cố gắng tìm ra lý do tại sao ứng dụng của tôi không hoạt động trong IE8 (vâng, chúng tôi vẫn có người dùng chạy XP, thật không may). Đó là vì tôi đã sử dụng phiên bản jQuery được cài đặt bởi NuGet trong Visual Studio 2012. – timbck2

1

sử dụng mã kiểm tra vào ý chính dưới đây được liên kết trong tập tin html của bạn và thêm cả jquery 2.0+ cho trình duyệt mới nhất và 1.9 cho trình duyệt cũ

https://gist.github.com/dwoodiwiss/5633393

0

tôi phải đối mặt với cùng một vấn đề, Thật sự tôi đã tham khảo kịch bản như thế này;

<script src="../js/jquery-ui.js" type="text/javascript"></script> 
<script src="../js/jquery.min.js" type="text/javascript"></script> 

Tôi đã sửa lỗi này bằng cách thay đổi tập lệnh tham chiếu thứ tự bằng cách gọi jquery.min.js trước tiên.

<script src="../js/jquery.min.js" type="text/javascript"></script> 
<script src="../js/jquery-ui.js" type="text/javascript"></script> 

Thêm dòng sau trong web.config:

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
     <add name="X-UA-Compatible" value="IE=EmulateIE8" /> 
     </customHeaders> 
    </httpProtocol> 
</system.webServer> 
Các vấn đề liên quan