This question already has answers here:
javascript: what does /*@ @*/ mean?
                                
                                    (2个答案)
                                
                        
                                4年前关闭。
            
                    
我正在查看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)的表达?

最佳答案

按照this link@cc_on语句允许IE呈现其他浏览器无法呈现的内容。他们称其为“条件编译”。


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


因此,IE将把代码的第一个条件读取为!false,但其他所有浏览器都将其读取为false

警告:


  Internet Explorer 11标准模式和Windows Store应用程序不支持条件编译。

关于javascript - 此IE特定代码有什么作用? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29754359/

10-14 16:27
查看更多