使用ReactJS进行IE条件定位

mol*_*04x 8 html css internet-explorer reactjs

我正在使用ReactJS编写Web应用程序,我需要专门针对IE9及以下浏览器来排除应用类.具体来说,我的客户端有一个<select>他们想要使用的自定义控件,并且在他们的主网站(不使用React)上,他们使用条件注释来定位IE9-以不应用自定义<select>样式.问题是,使用ReactJS,无法进行IE条件注释.我做了一些google-foo,我能找到的最好的解决方案是将HTML直接注入DOM,而不是允许React处理渲染.

<div>
    <!--[if lte IE 9]>
    <select>
    <![endif] -->
    <!--[if !IE]> -->
    <select className = "customSelect">
    <!-- <![endif] -->
        <!-- OPTIONS GO HERE -->
    </select>
</div>
Run Code Online (Sandbox Code Playgroud)

有没有办法在CSS中模拟这个,或者有没有人听说过反应插件可以让我进行IE条件检查?

jsFiddle例如这里

Jon*_*nan 5

其他选择:

如果在构建过程中删除了注释,则条件编译很容易咬你,因此从长远来看,功能检测可能不那么痛苦:

var ie = require('ie-version')
...
var className = 'customSelect'
if (ie.version && ie.version <= 9) {
  className = ''
}
return <div>
  <select className={className}>
  ...
  </select>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 你有什么理由推荐另一个包而不是利用`document.documentMode`吗?`var ieVersion = (document.documentMode?document.documentMode: 99);` (2认同)