javascript里的@cc_on是什么

今天在解决一个ie在html5下的hack问题的时候在网上搜到一段js


// http://jdbartlett.github.com/innershiv | WTFPL License

window.innerShiv = (function() {

  var d, r;

  

  return function(h, u) {

    if (!d) {

      d = document.createElement('div');

      r = document.createDocumentFragment();

    }

    

    var e = d.cloneNode(true);

    /*@cc_on document.body.appendChild(e);@*/

    e.innerHTML = h.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

    /*@cc_on document.body.removeChild(e);@*/

    

    if (u === false) return e.childNodes;

    

    var f = r.cloneNode(true), i = e.childNodes.length;

    while (i--) f.appendChild(e.firstChild);

    

    return f;

  }

}());

刚开始的时候,我顺手把那两个@cc_on的注释去掉了,发现怎么也无法work,最后比对我个代码跟例子程序,我锁定了这两行注释,果然加上以后就能工作了。ie还真是个充满了潜规则的世界,请js达人告诉我,这个注释是干啥用的。


翻阅古今
浏览 326回答 1
1回答

隔江千里

IE 的条件编译,但 JS 是解释型语言,所以这个“编译”可以看做是一种“预编译”,运行时是已经编译过的代码,可惜其它引擎不支持啊
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript