IE中奇怪的应用CSS的BUG分析

2020-05-10 11:45:09易采站长站整理

var agent = window.navigator.userAgent.toLowerCase();
var is_op = (agent.indexOf(“opera”) != -1);
var is_ie = (agent.indexOf(“msie”) != -1) && document.all && !is_op;
var is_ch = (agent.indexOf(“chrome”) != -1);
var cssStr=”h3 {color:green;}”;
var s=document.createElement(“style”);
var head=document.getElementsByTagName(“head”).item(0);
var link=document.getElementsByTagName(“link”);
link=link.item(0);
if(is_ie)
{
if(link)
head.insertBefore(s,link);
else
head.appendChild(s);
document.styleSheets.item(document.styleSheets.length-1).cssText=cssStr;
}
else if(is_ch)
{
var t=document.createTextNode();
t.nodeValue=cssStr;
s.appendChild(t);
head.insertBefore(s,link);
}
else
{
s.innerHTML=cssStr;
head.insertBefore(s,link);
}
})();

在Firefox/Chrome/Safari/Opera中测试文字都是蓝色的,符合外部样式如果插入到内部样式前的话,外部样式将覆盖内部样式的原则,然而在IE下却是绿色的,也就是说IE在加载完页面文档,运行了脚本插入了内部样式之后,就把文字颜色设置成绿色了而忽略了后面外部样式。不知道大家是否也碰到这样的问题,欢迎讨论……
作者:梦想
出处:http://www.cnblogs.com/lhb25