相关疑难解决方法(0)

Javascript IE检测,为什么不使用简单的条件注释?

为了检测IE,大多数Javascript库都做了各种各样的技巧.

  • jQuery似乎在页面的DOM中添加了一个临时对象来检测某些功能,
  • YUI2对其YAHOO.env.ua = function()(文件yahoo.js)中的用户代理进行正则表达式

在阅读了这个答案之后,我想到了这是真的,为了在Javascript中简单地检测IE,我们可以简单地添加到我们的页面:

<!--[if IE]><script type="text/javascript">window['isIE'] = true;</script><![endif]-->

<script type="text/javascript" src="all-your-other-scripts-here.js"></script>
Run Code Online (Sandbox Code Playgroud)

现在,window.isIE为我们所有的Javascript代码设置变量,只需执行以下操作:

if(window.isIE)
   ...
Run Code Online (Sandbox Code Playgroud)

除了这可能导致痛苦,因为它必须在所有页面中添加之外,是否存在我可能不知道的任何问题/考虑因素?


仅供参考:我知道最好使用对象检测而不是浏览器检测,但有些情况下您仍然需要使用浏览器检测.

javascript internet-explorer browser-detection conditional-comments

47
推荐指数
5
解决办法
7万
查看次数