IE 条件解释的语句

这里是一个演示条件注释如何工作的简单示例。

<!--[if IE 6]>
<p>You are using Internet Explorer 6.</p>
<![endif]-->
<!--[if !IE]><!-->
<p>You are not using Internet Explorer.</p>
<!--<![endif]-->

句法[编辑]

有两种「条件注释」:下层显示 (downlevel revealed)下层隐藏(downlevel hidden)

每种注释的基本句法如下表所示。第一条展示的是基本的 HTML 注释,被包括在内作为比较以及用以说明被每种条件注释使用的不同句法。

注释类型 句法或可能取值
标准 HTML 注释<!-- Comment content  -->
downlevel-hidden<!--[if expression]> HTML <![endif]-->
downlevel-revealed<![if expression]> HTML <![endif]>

于每个条件注释之中的句法块内的 HTML 表示任意的 HTML 内容块,包括脚本。两种条件注释均使用条件表达式以指示注释块内的内容应该被解析还是被忽略。条件表达式由特性,操作符,和/或决定于其特性的值组成。下表展示了支持的特性并描述了每种特性支持的值。

项目 示例 说明
IE[if IE]字符串 "IE" 是一种对应于用以浏览网页的 Internet Explorer 的版本的一种特性
value[if IE 7]一个对应于浏览器版本的整数或浮点数。返回一个布尔值,版本号和浏览器版本相匹配时为 true。更多信息参见版本向量en:Version vector)。
WindowsEdition[if WindowsEdition]适用于 Windows 7 上的 Internet Explorer 8。字符串 "WindowsEdition" 是一种对应于用以浏览该网页的 Microsoft Windows 版本的特性
value[if WindowsEdition 1]一个对应于用以浏览该网页的 Windows 的版本的整数。返回一个布尔值,数值和使用的版本相匹配时为真 true。关于所支持的值和它们所描述的版本的更多信息,参见GetProductInfo 函数的 pdwReturnedProductType 参数。
true[if true]永远等价于 true.
false[if false]永远等价于 false.

可用于创造条件注释的算符如下表。

项目 示例 说明
 ![if !IE]NOT 运算符。这被放在 特性算符, 或者 子表达式 的前面以反转该表达式的布尔值含义。
lt[if lt IE 5.5]小于运算符。第一项小于第二项时返回 true。
lte[if lte IE 6]小于或等于运算符。第一项小于或等于第二项时返回 true。
gt[if gt IE 5]大于运算符。第一项大于第二项时返回 true。
gte[if gte IE 7]大于或等于运算符。第一项大于或等于第二项时返回 true。
( )[if !(IE 7)]子表达式运算符。用以连接布尔算符以创造更加复杂的表达式。
&[if (gt IE 5)&(lt IE 7)]AND 运算符。所有子表达式为真时返回 true。
|[if (IE 6)|(IE 7)]OR 运算符。子表达式任意一个为真时返回 true。

下层隐藏的条件注释[编辑]

如下是两个「下层隐藏」条件注释的示例。

<!--[if IE 8]>
<link href="ie8only.css" rel="stylesheet">
<![endif]-->

或者

<!--[if lte IE 7]>
<style>
/* CSS here */
</style>
<![endif]-->

第一个示例中的指令将会让 IE 8 读取指定的 CSS 文件,而 IE 7 或者其它版本的 IE 将会忽略它。非 IE 的浏览器同样会把它忽略因为它看起来像一条标准的 HTML 注释。第二条示例里的标记将会让 IE 5 至 7 读取其内的 CSS 样式。通过对这种标记的不同的使用你也可以挑出 IE 6, IE 5 或者比指定版本更新(大)或更旧(小)版本的 IE。

下层显示的条件注释[编辑]

如下是一个「下层显示」条件「注释」的示例,它除了误导向的名字之外,根本不是一个 (X)HTML 注释,使用默认的微软语法:

<![if !IE]>
<link href="non-ie.css" rel="stylesheet">
<![endif]>

这个示例展示了应该仅对非 IE 浏览器暴露的内容,由于该条件对 IE 为假(并且因此该内容被忽略),而这些标签自身在非 IE 浏览器中是无法识别的(并因此被忽略)。这不是有效的 HTML 或 XHTML。

微软承认这种句法不是标准化的标记,[4]意图是这些标记被其它浏览器忽视并暴露其中的内容。为了确保与 W3C 标准的兼容,一些网页开发者使用了下层显示的条件注释的一种替代性的技巧。[5]

<!--[if !IE]>-->
<link href="non-ie.css" rel="stylesheet">
<!--<![endif]-->

虽然结构上有些令人困惑,这种具体的句法是有效的 (X)HTML 且对为非 IE 浏览器准备的有条件的片段是有用的;但如果其中的条件等价于 true(例如,如果写意图在非 IE 浏览器和一些版本的 IE 上显示的代码),IE 将会显示于 HTML 内容前出现的「-->」。这个问题通过对原来的「-->」之前加一个「<!」很容易解决,如下所示:

<!--[if gt IE 6]><!-->
This code displays on non-IE browsers and on IE 7 or higher.
<!--<![endif]-->

这个额外的「<!」被非 IE 的浏览器忽略;它同样会被 IE 忽略而无论条件,因为如果为假,条件注释里面的一切都会被忽略,而如果为真,导致的标签 <!--> 是一条空注释并因此被忽略。

这个方法尽管在目前(截至 IE 9)版本的 Internet Explorer 中仍然有用,无法保证未来的版本将会继续如此工作(Internet Explorer 10 已取消条件注释的支持)。

JScript 中的条件注释[编辑]

自 Internet Explorer 4 开始,存在一种于 JScript 之中加入条件注释的类似的专有的机理,名称是条件编译。[6] 代码示例:

<script>
/*@cc_on
  document.write("You are using IE4 or higher");
@*/
</script>

同样有一些预定义的变量,[7]尽管随着微软改变 XP SP3 上的 IE 6 的 JScript 引擎,[8]这些不再可以依赖,现在它如下所示:

@_jscript_version == 5.7

其结果是,利用条件编译侦测 IE 6 的方法如下:

<script>
/*@cc_on
 
  @if (@_jscript_version == 10)
    document.write("You are using IE10");
 
  @elif (@_jscript_version == 9)
    document.write("You are using IE9");
 
  @elif (@_jscript_version == 5.8)
    document.write("You are using IE8");
 
  @elif (@_jscript_version == 5.7 && window.XMLHttpRequest)
    document.write("You are using IE7");
 
  @elif (@_jscript_version == 5.6 || (@_jscript_version == 5.7 && !window.XMLHttpRequest))
    document.write("You are using IE6");
 
  @elif (@_jscript_version == 5.5)
    document.write("You are using IE5.5");
 
  @else
    document.write("You are using IE5 or older");
 
  @end
 
@*/
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的医院后台管理系统实现了病房管理、病例管理、处方管理、字典管理、公告信息管理、患者管理、药品管理、医生管理、预约医生管理、住院管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让医院后台管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值