首页 > JavaScript > JavaScript 关于条件编译:conditional compilation
2010一月5

JavaScript 关于条件编译:conditional compilation

怿飞那里看到其经常使用 /*@cc_on!@*/false来判断是否是IE浏览器。这种方法咱可从来没有用过,查查吧?

何为条件编译 conditional compilation:

关于条件编译的定义,及其含义,大家可以参考如下两个地址:

  1. http://msdn.microsoft.com/zh-cn/library/ahx1z4fs.aspx
  2. http://www.javascriptkit.com/javatutors/conditionalcompile.shtml

通常使用 @cc_on 来激活条件编译,一般的建议是将 @cc_on 放入注释中,这样不支持条件编译的浏览器就不会报错。而支持的浏览器(IE)就会执行其条件编译内的逻辑,包括其内的 @if @else @set .etc

所以在写法上面, 通常将非IE的浏览器要执行的代码放在注释外。所以上面的链接中有如下示例(注意看第二个链接中的示例)

/*@cc_on
document.write("JScript version: " + @_jscript_version + ".<br>");
    /*@if (@_jscript_version >= 5)
       document.write("JScript Version 5.0 or better.<br \/>");
       document.write("This text is only seen by browsers that support JScript 5+<br>");
    @else @*/

       document.write("This text is seen by all other browsers (ie: Firefox, IE 4.x etc)<br>");
    /*@end
@*/

判断是否是IE浏览器的简单语句:

因此,如果我们要判断浏览器是否是ie的话可以用下面简单的语句:

var isIE = /*@cc _on!@*/false;

如果是非IE,则不支持条件编译语句,返回false,IE则会执行,里面的!符号,最终返回true。网上一些通用的写法是:

if(/*@cc_on!@*/0 ){
    alert('IE');
} else {
    alert('not ie');
}

文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2010/01/05/1681/
版权所有 © 转载时必须以链接形式注明作者和原始出处!

3 Responses to “JavaScript 关于条件编译:conditional compilation”

  1. #1 popo 回复 | 引用 Post:2010-01-05 15:29

    来支持一个 ;-) ;-)

    [回复]

  2. #2 simaopig 回复 | 引用 Post:2010-01-05 15:33

    @popo
    呵呵,谢谢。

    [回复]

  3. #3 qpwoeiru96 回复 | 引用 Post:2010-08-31 22:55

    if([,]==’,'){ //ie code
    }else{//not ie code
    }
    以上是看到的最简单判断IE的代码 IE 678 测试Pass

    嘿嘿 每次都来你这偷学一点

    [回复]

发表评论

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)