2009-03-08 26 views

Trả lời

22

Trước khi IE8:

alert('Page was rendered in ' + 
    ((document.compatMode == 'CSS1Compat') ? 'Standards' : 'Quirks') + ' Mode.'); 

Đối với IE8:

var vMode = document.documentMode; 
var rMode = 'IE5 Quirks Mode'; 
if(vMode == 8){ 
    rMode = 'IE8 Standards Mode'; 
} else if(vMode == 7){ 
    rMode = 'IE7 Strict Mode'; 
} 
alert('Rendering in: ' + rMode); 

Hãy nhận biết rằng để đạt được Các lợi ích mới của IE8 "chế độ tiêu chuẩn theo mặc định" hành vi bạn sẽ cần phải được render trong IE8 Chế độ tiêu chuẩn.

chế độ này ảnh hưởng đến việc vẽ của HTML + CSS của bạn cũng như các bản sửa lỗi JavaScript phương pháp như document.getElementById(id);.setAttribute(name, value);

+1

Mẹo: Tạo một yêu thích bằng cách sử dụng đoạn mã sau là url: _javascript : (function() {var vMode = document.documentMode; var rMode = 'Chế độ Quirks của IE5'; nếu (vMode == 8) {rMode = 'Chế độ tiêu chuẩn IE8';} nếu không (vMode == 7) {rMode = Cảnh báo 'IE7 Strict Mode';} ('Rendering in:' + rMode);))(); _ Nếu bạn đã tạo yêu thích bằng mã này bạn có thể đặt tên e nó giống như "phát hiện chế độ hiển thị". Chỉ bằng cách nhấp vào nó, bạn sẽ nhận được hộp tin nhắn. – SimonSimCity

+0

@SimonSimCity vui bạn nên đề cập đến điều đó - đó là chính xác những gì tôi có ngoại trừ của tôi được gọi là "Render Mode" – scunliffe

+0

nhưng những gì về IE 9 và IE 10? Tại sao không chỉ nhìn vào 'document.compatMode' để xem liệu nó là' BackCompat' (chế độ Quirks) hay 'CSS1Compat' (chế độ Tương thích Chuẩn) –

1

Bạn cũng nên có một cái nhìn tại jQuerys jQuery.support. Nó sẽ cho bạn biết tiêu chuẩn này được hỗ trợ bởi trình duyệt (boxModel, opacity vv)

http://docs.jquery.com/Utilities/jQuery.support

tức

jQuery.support.boxModel; //false in IE when in quirksmode, true otherwise. 
+0

Thuộc tính này đã bị xóa trong jQuery 1.8. – chris

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