您的位置:首页 > 产品设计 > UI/UE

document.execCommand(”BackgroundImageCache”, false, true)

2013-01-11 08:50 549 查看
很多时候我们要给一些按钮或是img设置背景,而为了达到数据与表现样式分离的效果,通常背景样式都是在CSS里设定的,但是这个行为在IE会有一个Bug,那就是因为 IE默认情况下不缓存背景图片,所以当鼠标在有CSS背景的按钮或是图片上移动时,图片会闪烁甚至鼠标会出现忙的状态,而在FireFox下没有这个问题,为了解决这个问题,有两种解决办法,其一是在CSS中加入如下样式:

html {
filter: expression(document.execCommand(”BackgroundImageCache”, false, true));
}


但这个可能会使整个页面的加载变得很慢,所以推荐使用JS来修正这个Bug,在页面中的任意位置加入如下代码,即可达到理想中的效果:

<script>
document.execCommand(”BackgroundImageCache”, false, true);
</script>


(function(){
/**//*Use Object Detection to detect IE6*/
var m = document.uniqueID /**//*IE*/
&& document.compatMode /**//*>=IE6*/
&& !window.XMLHttpRequest /**//*<=IE6*/
&& document.execCommand;

try{
if(!!m){
m("BackgroundImageCache", false, true) /**//* = IE6 only */
}

}catch(oh){};
})();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: