【发布时间】:2019-07-13 00:44:28
【问题描述】:
我有一段 HTML 代码,我们在其中应用了 IE9、IE10 和 IE11 的特殊 css。
<!doctype html>
<!--[if IE 9]><html data-placeholder-focus="false" lang="{%=user_locale_html}}" dir="ltr" class="ie9 lt-ie10 lt-ie11 lt-ie12 gt-ie8 gt-ie7 gt-ie6"><![endif]-->
<!--[if !(IE)]><!--><html lang="{%=user_locale_html}}" dir="{%=dir}}">
<script>
var ua = window.navigator.userAgent;
if (ua.indexOf("Trident/7.0") > 0)
document.documentElement.className='ie11 lt-ie12 gt-ie10 gt-ie9 gt-ie8 gt-ie7 gt-ie6';
else if (ua.indexOf("Trident/6.0") > 0)
document.documentElement.className='ie10 lt-ie11 lt-ie12 gt-ie9 gt-ie8 gt-ie7 gt-ie6';
if(/*@cc_on!@*/false){
document.documentElement.className='gt-ie11 gt-ie10 gt-ie9 gt-ie8 gt-ie7 gt-ie6';
}
</script>
<!--<![endif]-->
</html>
注意代码if(/*@cc_on!@*/false) {}
当我们有 userAgant=Trident/6.0. 时,此代码将覆盖在 IE10 中应用的 css 类(这导致我无法覆盖 ie10 类。
但我的问题是,为什么当浏览器是 IE9 时这段代码没有覆盖类?
我知道代码中不需要@cc_on 相关的东西,但我很想知道它的行为有何不同。
谢谢!
【问题讨论】:
-
IE 9?!我很惊讶有人在 2019 年甚至尝试支持 IE 9
-
cc_on有一些very flaky support。您可能根本不应该尝试使用它 -
你需要使用IE9的跨浏览器解决方案看看这个:w3schools.com/howto/howto_js_add_class.asp这里切换类名:w3schools.com/howto/howto_js_toggle_class.asp
-
几乎所有浏览器也不再支持条件 cmets。我很久没有看到代码试图做这种事情了。现在几乎每个人都只支持“现代”浏览器
-
感谢你们的快速回复:) 我理解这里所做的一切似乎已被弃用。当然,这是一个有 5 年历史的代码:D
标签: javascript html internet-explorer-9 conditional-comments