This is an archived page. It's not actively maintained.


This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

Warning: Conditional compilation is not supported in Internet Explorer 11 Standards mode and Windows 8.x Store apps. Conditional compilation is supported in Internet Explorer 10 Standards mode and in all earlier versions.

The @if statement conditionally executes a group of statements, depending on the value of an expression.


@if (
[@elif (


text1 Optional
Text to be parsed if condition1 is true.
text2 Optional
Text to be parsed if condition1 is false and condition2 is true.
text3 Optional
Text to be parsed if both condition1 and condition2 are false.


When you write an @if statement, you do not have to place each clause on a separate line. You can use multiple @elif clauses. However, all @elif clauses must come before an @elseclause.

The @if statement is typically used to determine which text among several options should be used for text output.

It is not common to use conditional compilation variables in scripts written for ASP or ASP.NET pages or command-line programs. This is because the capabilities of the compilers can be determined by using other methods.

When you write a script for a Web page, always add conditional compilation code in comments. This enables hosts that do not support conditional compilation to ignore it.


The following example illustrates the use of the @if...@elif...@else...@end statement.

/*@cc_on @*/
    document.write("JavaScript version: " + @_jscript_version + ".");
    document.write("<br />");
    @if (@_win32)
        document.write("Running on a 32-bit version of Windows.");
    @elif (@_win16)
        document.write("Running on a 16-bit version of Windows.");
        document.write("Running on a different operating system.");


Supported in all versions of Internet Explorer, but not in Windows 8.x Store apps.

See also