Iexplorer 9 - jscript - заменить backgroundImage - PullRequest
1 голос
/ 14 апреля 2011

Я использую следующую строку в js-скрипте с FF и IE9.BackgroundImage где-то установлен на

url ("images / \\ BalkLinks.png")

, и позже я хочу изменить это изображение на одно с тенью.1007 * В FF, IE8 все идет хорошо, но в IE9 / \\ превращается в косую черту, странный символ и «Bal» удаляется.Также «.png» заменяется на «S.png», что правильно.

Есть ли кто-нибудь, кто может сказать мне, что я делаю неправильно?

Гр

пример:

<!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>

1 Ответ

1 голос
/ 14 апреля 2011

Вы должны использовать регулярные выражения в функции замены.

backgroundImage.replace(/.png/g,"S.png");

Есть еще одна вещь, которая опасна: Не все браузеры возвращают текущее значение свойства стиля. Например, chrome вернет пустую строку для "style.backgroundImage".

Chrome возвращает только те значения, которые указаны в JavaScript ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...