2013-07-30 69 views
2

我正在对旧的SAAS软件进行现代化改造。我是他们的第一个前端人物。他们目前仅支持较早的IE浏览器 - 并告诉用户在新的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'); 
     } 
}); 

OK,我还需要找到,如果他们在文档模式IE 7标准手动​​,我知道这是一个烂摊子,但他们需要它,我认为要做到这一点就足够重要。我遇到同样的问题,除非我手动更换东西,而不仅仅是加载,否则不会放置课程。这是这个代码...它在上面准备好的文档中。

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

我不明白这个问题。您是否要求网站在用户点击共享模式按钮时向您远程报告? – isherwood

+0

IE允许用户设置哪些域以怪癖模式工作。 '[Alt] - >工具 - >兼容性视图设置“...添加需要的站点。我对Active Directory不太熟悉,但我认为/您可以使用组策略来推送这些设置 – BLSully

+2

根据您提供的标签,我假设您想知道如何在Javascript中执行此操作?或者其他一些语言? 如果你想知道的Javascript,这是一个重复这个问题:http://stackoverflow.com/questions/623047/how-to-detect-render-mode-of-browser-for-current-page – wilso132

回答

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中设置了Quirks模式或手动设置IE7标准文档模式,它会向html添加一个类。

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

感谢您的帮助!

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