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