2013-11-27 21 views
5

Tôi đang xây dựng trang web một trang, sử dụng AngularJS, ui-router và jquery, và tôi cần nó để hỗ trợ 8 trình duyệt.
Tôi đã làm theo hướng dẫn từ tài liệu AngularJS (link) và tôi cũng đọc this và làm theo hướng dẫn của nó.
Tóm lại: Tôi thêm mã này trong tiêu đề:AngularJS IE 8 Hỗ trợ

<html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="myApp"> 

và cũng:

<!--[if lt IE 9]> 
    <script type="text/javascript" src="/app/js/3rdparty/html5shiv.js"></script> 
    <script type="text/javascript" src="/app/js/3rdparty/json3.min.js"></script> 
<![endif]--> 

Tất cả các chỉ thị của tôi bị hạn chế sẽ được sử dụng như chỉ thị thuộc tính (không có thẻ tùy chỉnh).
Nhưng vẫn không có chế độ xem nào được hiển thị và không có chỉ thị nào hoạt động (trên ie8).

Gần đây tôi đã bắt đầu sử dụng ui-router và sự cố đã tồn tại ngay cả trước đó.
Tôi thực sự không thể tìm thấy sự cố và tôi đã tìm kiếm rất nhiều.
Có nhiều bản sao cho điều này, tôi biết, nhưng không có giải pháp nào của họ đã giúp tôi (và hầu hết trong số họ đều đề cập đến tài liệu của angularjs).
Tôi chưa đăng bất kỳ mã nào khác, vì có rất nhiều mã, và tôi thực sự không thể tìm ra phần nào của mã (ngoài index.html) có thể gây ra bất kỳ sự cố nào.
Tôi sẽ đăng bất kỳ mã nào khác nếu bạn cho rằng nó có thể hữu ích.
Tôi thực sự bị mất và sẽ thực sự biết ơn nếu ai đó có thể hướng dẫn tôi giải pháp.
Cảm ơn bạn rất nhiều

+0

Bạn có thể cung cấp thêm đánh dấu không? Các kịch bản khác bao gồm cũng rất quan trọng! Ví dụ, các phiên bản jQuery mới nhất [đã giảm hỗ trợ cho IE 8] (http: //blog.jquery.com/2013/04/18/jquery-2-0-release /). –

Trả lời

4

Dường như tôi đã làm một chút ngốc nghếch.
Vấn đề là tôi đã sử dụng một số từ dành riêng, và dường như IE8 thực sự không thích nó chút nào.
Ví dụ tôi có một tham số có tên là "lớp" trên một đối tượng, do đó, sử dụng obj.class chỉ làm cho IE8 trở nên khó chịu.
Cùng với một chức năng có tên là "xóa" (một lần nữa bên trong một đối tượng, vì vậy tôi đã sử dụng functionHoldingObject.delete.

Tôi biết lời về dành riêng, tôi chỉ không nghĩ rằng việc sử dụng chúng như một tham số của một đối tượng là có hại. để khắc phục điều này, tôi chỉ thay đổi tên cho một số người, và sử dụng obj["reservedWord"] cho người khác, cả hai giải pháp làm việc trên tất cả các trình duyệt.

một lỗi tôi thấy, là tôi đã sử dụng Array.prototype.indexOf chức năng mà không biết rằng IE8 doesn Vì vậy, tôi chỉ cần thêm một thực hiện (rất dễ dàng)
Bạn có thể được trợ giúp về điều đó trên MDN trang web.

0

Tôi đã gặp sự cố tương tự gần đây vì chế độ tương thích.

Cố gắng buộc nó với:

<!--[if IE 8]><!--> <meta http-equiv="X-UA-Compatible" content="IE=8" /> <!--<![endif]--> 

Ngoài ra kiểm tra trong trình duyệt IE8 của bạn mà chế độ tương thích của bạn không phải là IE7.

+0

Vui lòng sử dụng "cho html trong câu trả lời của bạn thay vì" và " – Daan

9

Trong trường hợp nếu bạn đã sử dụng bất kỳ console.log() nào trong bộ điều khiển hoặc dịch vụ hoặc nhà máy của bạn thì IE-8 sẽ không tải góc nào cả. Thật kỳ lạ.

+1

Đó không phải là trường hợp của tôi. Tôi khuyên bạn nên sử dụng [$ log] của Angular (http://docs.angularjs.org/api/ng/service/$log) dịch vụ cho điều đó Nhưng cảm ơn cho người đứng đầu lên! –

+0

@ Senthil -Đó là thực sự đúng Cảm ơn – pingu

+0

Điều này đã cứu tôi sau giờ trầy xước đầu, cảm ơn bạn – DrewT

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