有人可以解释html5shim脚本的开始和结束是如何工作的吗?javascript:/ * @ @ * /是什么意思?
的脚本/*@
开始,以@*/
这样结束:
/*@cc_on(function(a,b){function ........ (this,document);@*/
什么/*@ @*/
在做什么?
我期望/ * * /序列注释掉它们之间的所有行,但是由于脚本执行,这里不能这样吗?我很困惑。
发现在:
有人可以解释html5shim脚本的开始和结束是如何工作的吗?javascript:/ * @ @ * /是什么意思?
的脚本/*@
开始,以@*/
这样结束:
/*@cc_on(function(a,b){function ........ (this,document);@*/
什么/*@ @*/
在做什么?
我期望/ * * /序列注释掉它们之间的所有行,但是由于脚本执行,这里不能这样吗?我很困惑。
发现在:
IE的JScript支持 '条件编译',躲在特殊的浏览器的一招评论中有特定的信息。这个想法是,/*@[email protected]*/
是这样一个不寻常的字符序列,因此可以安全地重新使用它来引入这种新的语法级特性。
html5shiv使用它来创建一段甚至不会尝试在大多数浏览器上运行的代码(与您一样,它会将整个事件解释为一个推荐),但对IE有特殊意义。
MS doc here。没有其他JS引擎支持这一点。通常情况下,您可能更喜欢更明确的行为 - 嗅探代码,但如果您确实需要检测不会暴露其自身以嗅探的IE功能,则可能非常方便。
这是一个IE主义的 “条件编译”:http://www.javascriptkit.com/javatutors/conditionalcompile.shtml
“没有其他的JS引擎支持这个......”是不是重点? ;) – Artfunkel
@Artfunkel:其他浏览器已经选择了其他浏览器扩展,所以它不在别人可能实现CC的某些功能的可能性之外。虽然现在大家都用它来检测IE,但这可能不是一个好主意...... – bobince