ton*_*nix 25 javascript html5 internet-explorer
关于这个评论的一个小问题我在一本关于HTML5的电子书上发现: /*@ cc_on!@*/0这个评论应该以某种方式绑定到IE浏览器的识别,以便使用document.createElement()来创建无法识别的HTML5元素,但我没有找到有关其工作原理的有用信息,甚至作者也没有解释它.有人能解释一下它是什么以及它做了什么,拜托?
感谢您的关注!
编辑:
在电子书中,作者说:
下一个示例演示了如何解决HTML5中引入的所有新元素的问题.这里我们包含了我们想要强制IE识别的所有元素:
以下是代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Styling Unknown Elements - 3</title>
<script>
(function() {
if (! /*@cc_on!@*/ 0)
return;
var e = "abbr,article,aside,audio,canvas, datalist,details,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output, progress,section,time,video".split(','),
i = e.length;
while (i--) {
document.createElement(e[i]);
}
})()
</script>
<style>
time {
font-style: italic;
}
</style>
...
Run Code Online (Sandbox Code Playgroud)
抱歉可怕的缩进,但我正在使用平板电脑.无论如何,请看看脚本标签和if条件.
ale*_*dro 28
@cc_on Statement是IE(<11)浏览器的条件编译标志
从MSDN引用
@cc_on声明(JavaScript)
在脚本中的注释中激活条件编译支持.
警告
Internet Explorer 11标准模式和Windows应用商店应用程序不支持条件编译.Internet Explorer 10标准模式和所有早期版本均支持条件编译.
/*@cc_on @*/
/*@
document.write("JavaScript version: " + @_jscript_version + ".");
document.write("<br />");
@if (@_win32)
document.write("Running on the 32-bit version of Windows.");
@elif (@_win16)
document.write("Running on the 16-bit version of Windows.");
@else
document.write("Running on a different operating system.");
@end
@*/
Run Code Online (Sandbox Code Playgroud)
所以
if(!/*@cc_on!@*/0)
Run Code Online (Sandbox Code Playgroud)
如果您的浏览器不知道条件编译(IE<11除外),则表达式为:
if(!0) // ==> TRUE
Run Code Online (Sandbox Code Playgroud)
否则它将是:
if(!!0) // ==> FALSE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5496 次 |
| 最近记录: |