这个IE特定代码有什么作用?

时间:2015-04-20 17:22:32

标签: javascript internet-explorer comments

我正在查看an article如何在浏览器窗口中检测焦点。这是demo page

我对这个条件的作用感到困惑。

if (/*@cc_on!@*/false) { // check for Internet Explorer
    document.onfocusin = onFocus;
    document.onfocusout = onBlur;
} else {
    window.onfocus = onFocus;
    window.onblur = onBlur;
}

我认为document.onfocusin是Internet Explorer的等效window.onfocus。但我不明白条件的作用:

if (/*@cc_on!@*/false) { // check for Internet Explorer

这不仅仅是一个评论,它将表达式简化为if(false)吗?

1 个答案:

答案 0 :(得分:3)

根据this link@cc_on语句允许IE呈现其他浏览器不能呈现的内容。他们称之为“条件编译”。

  

强烈建议您在注释中使用@cc_on语句,以便不支持条件编译的浏览器会将您的脚本作为有效语法接受:

     

注释之外的@if或@set语句也会激活条件编译。

因此,IE会将您的代码的第一个条件读作!false,但每个其他浏览器都会将其读作false

警告:

  

Internet Explorer 11标准模式和Windows应用商店应用不支持条件编译。