`
ggsonic
  • 浏览: 266747 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Conditional Comments in Internet Explorer

阅读更多
犀牛书

Conditional Comments in Internet Explorer
In practice, you'll find that many of the incompatibilities in client-side JavaScript programming turn out to be IE-specific. That is, you must write code in one way for IE and in another way for all other browsers. Although you should normally avoid browser-specific extensions that are not likely to be standardized, IE supports conditional comments in both HTML and JavaScript code that can be useful.

Here is what conditional comments in HTML look like. Notice the tricks played with the closing delimiter of HTML comments:

<!--[if IE]>
This content is actually inside an HTML comment.
It will only be displayed in IE.
<![endif]-->

<!--[if gte IE 6]>
This content will only be displayed by IE 6 and later.
<![endif]-->

<!--[if !IE]> <-->
This is normal HTML content, but IE will not display it
because of the comment above and the comment below.
<!--> <![endif]-->

This is normal content, displayed by all browsers.



Conditional comments are also supported by IE's JavaScript interpreter, and C and C++ programmers may find them similar to the #ifdef/#endif functionality of the C preprocessor. A JavaScript conditional comment in IE begins with the text /*@cc_on and ends with the text @*/. (The cc in cc_on stands for conditional compilation.) The following conditional comment includes code that is executed only in IE:

/*@cc_on
  @if (@_jscript)

    // This code is inside a JS comment but is executed in IE.
    alert("In IE");

  @end
  @*/



Inside a conditional comment, the keywords @if, @else, and @end delimit the code that is to be conditionally executed by IE's JavaScript interpreter. Most of the time, you need only the simple conditional shown above: @if (@_jscript). JScript is Microsoft's name for its JavaScript interpreter, and the @_jscript variable is always true in IE.

With clever interleaving of conditional comments and regular JavaScript comments, you can set up one block of code to run in IE and a different block to run in all other browsers:

/*@cc_on
  @if (@_jscript)
    // This code is inside a conditional comment, which is also a
    // regular JavaScript comment. IE runs it but other browsers ignore it.
    alert('You are using Internet Explorer);
  @else*/
    // This code is no longer inside a JavaScript comment, but is still
    // inside the IE conditional comment.  This means that all browsers
    // except IE will run this code.
    alert('You are not using Internet Explorer');
/*@end
  @*/



Conditional comments, in both their HTML and JavaScript forms, are completely nonstandard. They are sometimes a useful way to achieve compatibility with IE, however.
分享到:
评论

相关推荐

    CSS3 support for Internet Explorer 6, 7, and 8

    针对IE6、IE7和IE8的CSS3支持,一种常见方法是使用条件注释(Conditional Comments)。这是微软特有的HTML注释,只在IE浏览器中被解析,允许开发者为不同版本的IE提供特定的CSS或JavaScript。例如: ```html &lt;!--...

    网页制作完全手册

    As of Internet Explorer 5, conditional comments are available as an alternative technique for detecting browser versions. Conditional comments have the advantage of not using a script block, which ...

    css3-mediaqueries兼容ie8的解决方法

    1. 使用` conditional comments ` Internet Explorer特有的条件注释允许我们在HTML中针对特定版本的IE插入代码块。我们可以利用这一点引入一个专门处理媒体查询的JavaScript库。例如: ```html &lt;!--[if lt IE 9]...

    Web-前端html+css从入门到精通 167. 选择器前缀法与IE条件注释法.zip

    为了在不破坏其他浏览器正常工作的同时,对IE进行特殊处理,开发者通常会在HTML文档中使用条件注释(Conditional Comments)。这些注释是IE特有的,其他浏览器会忽略它们。例如: ```html &lt;!--[if IE 6]&gt; &lt;!...

    检测低版本IE6.0并提示下载新版本IE的javascript脚本

    &lt;a href="http://www.microsoft.com/china/windows/internet-explorer/" target="_blank"&gt;Internet Explorer 8 或者使用其他浏览器如 &lt;a href="http://www.mozillaonline.com/"&gt;Firefox&lt;/a&gt;/ ...

    IE语法 DHTMLManual.rar

    - **条件注释(Conditional Comments)**: 用于在IE中插入特定的HTML代码,其他浏览器会忽略这些注释,如`&lt;!--[if IE]&gt;...&lt;![endif]--&gt;`。 **文件名chinaz.com** "chinaz.com"可能是指中国站长之家,这是一个提供...

    IE功能汇总(javascript).htm

    使用条件注释(Conditional Comments)可以针对IE编写特定的CSS样式。 9. **性能优化**:针对IE的性能优化技巧,如减少DOM操作、避免全局变量、合理使用缓存等,都是开发时需要注意的地方。 10. **错误处理**:IE...

    IE

    3. **条件注释(Conditional Comments)**:IE特有的HTML注释语法,允许针对IE版本插入特定的CSS或JavaScript代码,以解决兼容性问题。 4. **CSS hack**:由于IE对CSS的解析与其他浏览器有所不同,开发者可能需要...

    让网页根据不同IE版本显示不同的内容

    IE浏览器在其HTML注释中引入了一种特殊的条件注释(Conditional Comments)机制,使得开发者可以有条件地向IE展示特定的HTML代码,而其他不支持此特性的浏览器则会忽略这些注释。条件注释的基本语法结构如下: ```...

    让IE(包括IE6)支持HTML5元素

    标题“让IE(包括IE6)支持HTML5元素”指的是如何在旧版的Internet Explorer(尤其是IE6)中启用对HTML5新引入的元素的支持。这些元素如, , , , , 等,在HTML5中提供了更丰富的结构化语义,但在IE6到IE8等旧版本...

    ie标签以及集成说明

    IE标签的典型应用包括使用条件注释(Conditional Comments)来针对IE浏览器插入特定的CSS或JavaScript代码,或者利用诸如`&lt;iframe&gt;`标签来嵌入外部内容。例如,开发者可能会使用以下条件注释来确保只在IE浏览器中...

    IE低版本提示下载新的浏览器js--IEOutTips.zip

    对于老旧的浏览器,如早期版本的Internet Explorer(IE),开发者常常需要采取特殊措施来确保网站或应用的正常运行。"IE低版本提示下载新的浏览器js--IEOutTips.zip"这个压缩包就是为了解决这个问题而提供的资源。它...

    ie6-10兼容性解决-js.zip

    在互联网发展的早期,Internet Explorer(简称IE)是市场份额最大的浏览器,尤其从IE6到IE10,它们在不同阶段都占据主导地位。然而,每个版本都有其独特的特性、bug和兼容性问题,对Web开发者来说是个挑战。"ie6-10...

    CSS Hack详解

    由于各个浏览器厂商对CSS规范的实现可能存在差异,特别是在早期版本的Internet Explorer与其他浏览器之间,这种差异尤为明显。CSS Hack的目的是确保网页在各种浏览器中都能呈现出一致的视觉效果。 CSS Hack主要分为...

    IE6盒子模型没问题 详测双倍边距

    在网页开发中,IE6(Internet Explorer 6)浏览器的盒子模型(Box Model)是一个重要的概念,它涉及到元素宽度、高度、内填充(padding)和边框(border)的计算方式。在W3C标准中,一个元素的总宽度等于其内容宽度...

    新浪博客网页源码

    **条件注释(Conditional Comments)** - **`&lt;!C[if lte IE6]&gt; ... &lt;![endif]C&gt;`**:这是针对 Internet Explorer 浏览器的条件注释。这段注释只在 IE6 及以下版本中可见,可以用来向这些版本的 IE 提供特殊的脚本...

    兼容IE的C3

    IE(Internet Explorer)浏览器,尽管在现代已经逐渐被Chrome、Firefox等其他浏览器取代,但在过去很长一段时间内,尤其是IE8及以下版本,其对CSS3新特性的支持并不完善。"兼容IE的C3"是一个解决此类问题的技术方案...

    CSS3 Media QueryIE9前解决方法

    标题“CSS3 Media Query在IE9及更早版本的解决方法”所涉及的关键知识点是CSS3的媒体查询(Media Queries)以及如何在不支持媒体查询的旧版Internet Explorer(特别是IE9及以下版本)中实现兼容性。CSS3媒体查询是...

    弹出层,可拖动,IE,FF都支持

    本项目聚焦于实现一个兼容IE(Internet Explorer)和FF(Firefox)的可拖动弹出层,这意味着开发者已经考虑到了跨浏览器兼容性问题,这对于处理不同用户使用的不同浏览器时非常重要。 首先,我们需要了解弹出层的...

    IE8 的兼容性问题总结

    标题中的“IE8 的兼容性问题总结”表明了本文将主要讨论在开发Web应用时,针对Internet Explorer 8(简称IE8)浏览器所遇到的兼容性挑战。在Web开发领域,尤其是在IE8这样的旧版浏览器上,由于其对现代Web标准支持的...

Global site tag (gtag.js) - Google Analytics