document.execCommand("BackgroundImageCache",false)

很多时候,我们给按钮或者图片设置背景,但为了样式和结构分离,通常背景都在css里面设置,但是IE这一行为会有一个bug,那就是因为IE在默认的情况下,不缓存背景图片。所以当鼠标在有css背景的按钮或者图片移动的时候,图片会闪烁甚至鼠标会出现忙的状态。而在FireFox下没有这个问 题,为了解决这个问题,有两种解决办法,其一是在CSS中加入如下样式:

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

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

(function() {
    var browser = {};
    browser.name = navigator.appName;
    if (browser.name.indexOf("Microsoft") != -1) {
        browser.msie = navigator.appVersion.indexOf("MSIE");
        browser.version = parseInt(navigator.appVersion.substring(browser.msie + 4));
        if (browser.version <= 6) {
            document.execCommand("BackgroundImageCache", false, true);
        }
    }
})(window.navigator) //闭包传参

 

posted @ 2013-09-12 10:44  小菜学IT  阅读(575)  评论(0编辑  收藏  举报