javascript js文件中的条件标签

时间:2013-06-28 15:05:13

标签: javascript html

有没有办法在.js文件中使用像<!--[if (IE 6)|(IE 7)]>这样的HTML条件标签,因为如果访问者使用IE6或IE7,我需要执行某些javascript?

由于

4 个答案:

答案 0 :(得分:3)

我会用标记做这样的事情......

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class=""> <!--<![endif]-->
<head>

然后在你的JS中,你可以检查适当的体型:

if (html tag has class lt-ie8) {
  // we're in ie7 and below land
}

答案 1 :(得分:1)

您可以在标记中使用条件注释,并使用结果在js中创建条件变量。用这个开始你的文档:

<!DOCTYPE HTML>
<!--[if lte IE 7]><html lang="en" class="ieDetect ie7Detect"><![endif]-->
<!--[if IE 8]><html lang="en" class="ieDetect ie8Detect"><![endif]-->
<!--[if IE 9]><html lang="en" class="ieDetect ie9Detect"><![endif]-->
<!--[if !IE]>--><html lang="en"><!--<![endif]-->

我通常更喜欢使用jQuery并检查类:

var ieDetect = $('.ieDetect').length
,   ie7Detect = $('.ie7Detect').length
,   ie8Detect = $('.ie8Detect').length
,   ie9Detect = $('.ie9Detect').length
;

if (ieDetect){
  // do stuff with IE
}

如果你只想使用JS,你可以使用类获取功能并保留上面的标记,或者你可以放弃通用ieDetect类,只需使用ie7Detect(和8,9)作为html标记上的ID。

var ie7Detect = document.getElementById("ie7Detect").length
,   etc...

答案 2 :(得分:0)

单独的JS文件是最佳选择。

但是你可以使用navigator.userAgent:

var userAgent = navigator.userAgent;

由此您可以确定用户用来查看页面的浏览器并使用JS中内置的if语句。

答案 3 :(得分:-1)

用户navigator.userAgent检查用户的浏览器。

推荐阅读:http://api.jquery.com/jQuery.support/