在IE中发现Quirks模式

时间:2013-07-30 14:35:13

标签: javascript css internet-explorer quirks-mode

我正在研究旧版SAAS软件的现代化。我是他们的第一个前端人物。他们目前只支持较旧的IE浏览器 - 并告诉他们的用户在较新的IE浏览器中打开怪癖模式,他们的软件仍然有效。

在缓慢的现代化过程中,我仍然需要这些用户软件才能工作而不会崩溃。

是否有条件评论,javascript或其他功能可以让我在前端知道浏览器已手动设置为怪癖模式?

我不想把它关掉,因为它正在使系统的其他部分工作,我只需要能够在html标签中添加一个怪癖模式,这样我就可以解决css中的问题。

提前致谢。


修改

好的,我有一个js解决方案,差不多......这会每次都给我一个提醒,但是当我手动更改模式时,只会将类添加到html中。有什么想法吗?

$(document).ready(function() {
    var quirksMode = (document.compatMode == 'BackCompat');
    var isIE = ($('html').hasClass('ie'));
    if ( quirksMode && isIE ) {
        $('html').addClass('quirks');
            alert('IE Quirks');
        }
});

好的,我还需要手动查找他们是否处于文档模式IE 7 Standard中,我知道这是一团糟,但他们需要它,我认为重要的是要实现这一点。我遇到了同样的问题,除非我手动更改内容,而不仅仅是在加载时才打开课程。这是这段代码......它在上面准备好的文档中。

if ( document.documentMode == 7) {
    $('html').addClass('ie7_standard');
    alert('IE 7 Mode');
};

1 个答案:

答案 0 :(得分:1)

var quirksMode = (document.compatMode == 'BackCompat');
var isIE = ($('html').hasClass('ie'));
if ( quirksMode && isIE ) {
    $('html').addClass('quirks');
};
if ( document.documentMode == 7) {
    $('html').addClass('ie7_standard');
};

这解决了这个问题。如果您在IE或手动设置的IE7标准文档模式中有Quirks模式,它会向html添加一个类。

IE中的F12并不总是显示新的类名,但是如果你有css绑定到该类,它将起作用。

感谢大家的帮助!

我用这个问题(How to detect Render Mode of browser for current page?)作为起点,但似乎有些过时了。