determining why a page is being renderred in compatibility mode?
I have a layout issue which is due to the containing page being rendered in compatibility mode on IE8. Is there a way to detect whats causing IE8 to enter compatibility mode for a particular page?
According to Microsoft's documents, the following conditions can cause a page to be rendered in compatibility mode (http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx):
After reviewing the page, I've ruled out the first possibilities such that it must be a page layout error on the page. I'd like to locate this error.
Check if you have any <meta> tags forcing IE into compatibility mode.
You can force it to render as IE8 (fully CSS 2.1 compliant) if you wish:
<meta http-equiv="X-UA-Compatible" content="IE=8"/>
Assuming you have a hidden element with the ID compat-warning:
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();
});
Detection and warnings, your first and last lines of defense against compatibility hell.
链接地址: http://www.djcxy.com/p/46380.html上一篇: 从GPS获取iPhone上的位置
下一篇: 确定页面在兼容模式下呈现的原因?