通过javascript将图像路径添加到css中的过滤器

时间:2011-09-01 10:45:55

标签: javascript jquery css background

我在以下网站的背景中有以下内容可以在Internet Explorer中进行缩放:

#background{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/background1.jpg', sizingMethod='scale');
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/background1.jpg', sizingMethod='scale')";}

这很好用,但是我需要将图像路径更改为来自javascript的变量,来自具有多个背景的数组。使用radom编号,每次网站加载时我都会选择背景。

要做到这一点我正在做:

#background{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<script>document.write(background[rn]);</script>', sizingMethod='scale');
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<script>document.write(background[rn]);</script>', sizingMethod='scale')";}

但这不起作用。缩放不再起作用。

为什么呢?它出什么问题了?你会如何使它发挥作用?

非常感谢

2 个答案:

答案 0 :(得分:1)

这有效吗?:

<script>
document.write("<style type=\"text/css\">\n#background{filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + background[rn] + "', sizingMethod='scale' \n-ms-filter: \"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + background[rn] + "', sizingMethod='scale')\";}\n</style>");
</script>

在您的示例中,您试图在引号内插入脚本标记,这是不可能的,因为它只会被解释为字符串而不是脚本。

答案 1 :(得分:0)

对于遇到此问题的任何其他人,在将该属性应用于body标记时,您无法动态更改此属性。