我正在使用FF和IE9的js脚本中的下一行。 BackgroundImage设置在某处
url(“images / \\ BalkLinks.png”)
后来我喜欢将那个图像更改为带阴影的图像。
stbmkloon.childNodes[x].style.backgroundImage=stbmkloon.childNodes[x].style.backgroundImage.replace(".png","S.png");
在FF中,IE8运行良好,但在IE9中,/ \\变为斜线前进,一个奇怪的角色和“Bal”被删除。同样“.png”被“S.png”替换为正确的。
是否有人可以告诉我我做错了什么?
的Gr
一个例子:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
function PersoonOpVoorgrond (naam)
{
alert('before :'+document.getElementById(naam).style.backgroundImage);
document.getElementById(naam).style.backgroundImage=document.getElementById(naam).style.backgroundImage.replace(/.png/,"S.png");
alert('after :'+document.getElementById(naam).style.backgroundImage);
}
</SCRIPT>
</head>
<body>
<div id="Switch" onclick="PersoonOpVoorgrond('Switch');" style="background-image:url(images/\\BalkLinks.png); background-position:0% 0%; background-repeat: no-repeat; border:2px black solid; width:50px;">
Switch
</div>
</body>
</html>
答案 0 :(得分:1)
您应该在替换函数中使用正则表达式。
backgroundImage.replace(/.png/g,"S.png");
还有一件事是危险的: 并非所有浏览器都返回样式属性的当前值。例如,chrome将为“style.backgroundImage”返回一个空字符串。
Chrome仅返回之前由JavaScript指定的值。