未正确分配为IE8添加动态“过滤器”CSS属性

时间:2014-11-04 12:26:22

标签: javascript jquery html css internet-explorer-8

我正在尝试将以下CSS属性分配给我的网页中的DIV,如果显示页面的浏览器是IE8或IE9,则可以解决background-size属性不受支持的问题。我嗅探了浏览器,我的DIV背景图像的值是动态的,这意味着它随着选择事件的变化而变化。这是我的代码

// var msieVersion is determined earlier and this is in a nested condition
// to check if the browser is IE

if (msieVersion === 8 || msieVersion === 9) {

 // use jQuery to assign the dynamic CSS property and change the BG image source
 $("#container").css({ "filter": "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src +  "',sizingMethod='scale')", "-ms-filter": "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src +  "', sizingMethod='scale')"});

}

现在,当我使用IE开发工具检查元素时,似乎没有应用filter。在格式选项卡中列出了以下内联样式(href我已更改,但它正确且有效):

background-image:url(http://url/img1/1.jpg); FILTER: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://url/img1/1.jpg',sizingMethod='scale'); msFilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://url/img1/1.jpg', sizingMethod='scale')

有没有人知道如何动态分配这个属性(src值改变,这不能在我的样式表中)或者他们能发现我做错了吗?

1 个答案:

答案 0 :(得分:0)

在页面头部附加Style标签似乎解决了这个问题:

if (msieVersion === 8 || msieVersion === 9) {
            $('head').append("<style>" +
                "#container {" +
                "filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale');" +
                "-ms-filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src +  "', sizingMethod='scale')" +
                "}" +
                "</style>");
        }