您好,匿名用户
随意问技术百科期待您的加入

javascript里的@cc_on是什么

0 投票

今天在解决一个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达人告诉我,这个注释是干啥用的。

用户头像 提问 2012年 12月1日 @ Fizz 上等兵 (325 威望)
分享到:

1个回答

+1 投票
 
最佳答案

IE 的条件编译,
但 JS 是解释型语言,
所以这个“编译”可以看做是一种“预编译”,
运行时是已经编译过的代码,
可惜其它引擎不支持啊

用户头像 回复 2012年 12月1日 @ Riven 上等兵 (334 威望)
选中 2012年 12月1日 @Fizz
提一个问题:

相关问题

0 投票
1 回复 50 阅读
用户头像 提问 2012年 12月1日 @ Sion 上等兵 (319 威望)
0 投票
1 回复 36 阅读
0 投票
1 回复 36 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...