【问题标题】:What does this IE specific code do? [duplicate]这个 IE 特定代码有什么作用? [复制]
【发布时间】:2015-06-27 13:27:19
【问题描述】:

我正在查看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)吗?

【问题讨论】:

    标签: javascript internet-explorer comments


    【解决方案1】:

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

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

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

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

    不过是一个警告:

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

    【讨论】:

    • 谢谢!另外,尾随的@ 有什么作用?那是语法的一部分吗?
    • @AnubianNoob 它关闭声明
    猜你喜欢
    • 2011-10-12
    • 1970-01-01
    • 2013-04-17
    • 2010-12-15
    • 1970-01-01
    • 2012-01-26
    • 2017-04-20
    • 2018-02-15
    • 1970-01-01
    相关资源
    最近更新 更多