2010-06-23 32 views
7

Tôi gặp sự cố bố cục do trang chứa đang được hiển thị ở chế độ tương thích trên IE8. Có cách nào để phát hiện những gì gây ra IE8 để vào chế độ tương thích cho một trang cụ thể không?xác định lý do trang bị hiển thị ở chế độ tương thích?

Theo tài liệu của Microsoft, các điều kiện sau đây có thể gây ra một trang để được trả lại trong chế độ tương thích (http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx):

  • Compatibility View được kích hoạt cho trang.
  • Trang được tải trong vùng Intranet và Internet Explorer 8 được định cấu hình cho các trang trong vùng Intranet trong Chế độ xem tương thích.
  • Internet Explorer 8 được định cấu hình để hiển thị tất cả các trang web trong Chế độ xem tương thích.
  • Internet Explorer 8 được định cấu hình để sử dụng Danh sách chế độ xem tương thích, chỉ định một tập hợp các trang web luôn được hiển thị trong Chế độ xem tương thích.
  • Công cụ dành cho nhà phát triển được sử dụng để ghi đè cài đặt được chỉ định trong trang Web.
  • Trang Web gặp lỗi bố cục trang và Internet Explorer 8 được định cấu hình để tự động khôi phục từ các lỗi như vậy bằng cách mở lại trang trong Chế độ xem tương thích.

Sau khi xem xét trang, tôi đã loại trừ khả năng đầu tiên sao cho nó phải là lỗi bố cục trang trên trang. Tôi muốn tìm lỗi này.

+0

Về lỗi Bố cục trang: Chế độ xem tương thích được kích hoạt khi lỗi kết xuất IE8 gặp lỗi "không thể khôi phục". Tôi không chắc đây là gì. Nhưng tôi khuyên bạn nên làm cho trang của bạn xác nhận HTML (DOCTYPE bạn có?) Sau đó, hãy thử xoá từng phần CSS và JavaScript, vì vậy bạn có thể loại trừ nguyên nhân gây ra sự cố, – Daniel

Trả lời

4

Kiểm tra xem bạn có bất kỳ thẻ <meta> nào buộc IE vào chế độ tương thích không.

Bạn có thể buộc nó để render như IE8 (đầy đủ CSS 2.1 compliant) nếu bạn muốn:

<meta http-equiv="X-UA-Compatible" content="IE=8"/> 
+1

Lưu ý rằng 'Tương thích với X-UA' thẻ meta cần phải là thẻ meta đầu tiên trong 'head' –

0

Giả sử bạn có một yếu tố tiềm ẩn với ID compat-cảnh báo:

Javascript w/jQuery :

$(function(){ 
    function showCompatWarning() { 
     $('#compat-warning') 
      .css('display','block') 
      .css('height','auto') 
      .show(); 
    } 
    var tridentOffset = navigator.appVersion.indexOf('Trident/'); 
    if (tridentOffset === -1) return; 
    var jscriptVersion = 0; 
    /*@cc_on @*/ 
    /*@if (@_jscript) jscriptVersion = @_jscript_version ; @*/; 
    /*@end @*/ 
    var tridentVersion = parseInt(navigator.appVersion.substr(tridentOffset+8),10); 
    var guessIEVersion = tridentVersion + 4; 
    if ((document.documentMode && jscriptVersion && jscriptVersion < 10 && jscriptVersion !== document.documentMode) || 
     (document.compatMode && document.compatMode === 'BackCompat') || 
     (document.documentMode && document.documentMode < 10 && document.documentMode != guessIEVersion)) 
     showCompatWarning(); 
}); 

Phát hiện và cảnh báo, tuyến phòng thủ đầu tiên và cuối cùng của bạn chống lại địa ngục tương thích.

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