有人能解释一下html5shim脚本的开头和结尾是如何工作的吗?
这个脚本以/*@
开头,以@*/
结尾,就像这样:
/*@cc_on(function(a,b){function ........ (this,document);@*/
/*@ @*/
是什么作用?
我本来期望/* */序列会将它们之间的所有行都注释掉,但由于脚本是被执行的,所以在这里这不可能是情况。 我感到困惑。
源自:
有人能解释一下html5shim脚本的开头和结尾是如何工作的吗?
这个脚本以/*@
开头,以@*/
结尾,就像这样:
/*@cc_on(function(a,b){function ........ (this,document);@*/
/*@ @*/
是什么作用?
我本来期望/* */序列会将它们之间的所有行都注释掉,但由于脚本是被执行的,所以在这里这不可能是情况。 我感到困惑。
源自:
IE的JScript支持“条件编译”技巧,即在注释中隐藏特定于浏览器的信息。 思想是/*@...@*/
这样的字符序列非常不寻常,因此重新用它来引入这种新的语法级别特性是安全的。
html5shiv使用它创建了一段代码,在大多数浏览器上甚至都不会尝试运行(像您一样,将整个内容解释为注释),但对IE具有特殊含义。
MS文档在这里。没有其他JS引擎支持此功能。通常,您可能更喜欢更明确的行为探测代码,但如果您真的需要检测一个不暴露给嗅探的IE功能,这可能很方便。
这是IE浏览器中的"条件编译",详情请参考http://www.javascriptkit.com/javatutors/conditionalcompile.shtml