Я пытался изменить файл css динамически, но у меня проблема:
, когда я пытаюсь изменить стиль, если я go на "режим отладки", я вижу, что стиль меняется правильно, но как только он выходит из функции js, он возвращается к предыдущему стилю (по умолчанию).
Вот код:
Js:
function checkStyle(evt) {
var strUser = evt.options[evt.selectedIndex].value;
Style(strUser);
}
function Style(index) {
var cssLinkIndex = 0;
var counter;
switch (index) {
case "1":
counter = "./StyleCss/style1.css";
break;
case "2":
counter = "./StyleCss/style2.css";
break;
case "3":
counter = "./StyleCss/style3.css";
break;
case "4":
counter = "./StyleCss/style4.css";
break;
default:
counter = "./StyleCss/style1.css";
}
changeCSS(counter, cssLinkIndex);
}
function changeCSS(cssFile, cssLinkIndex) {
var oldlink = document.getElementsByTagName("link").item(cssLinkIndex);
var newlink = document.createElement("link");
newlink.setAttribute("rel", "stylesheet");
newlink.setAttribute("href", cssFile);
document.getElementsByTagName("head").item(0).replaceChild(newlink, oldlink);
}
HTML
<script type="text/javascript" src="./JavaScript/script.js"></script>
<link rel="stylesheet" href="./StyleCss/style1.css">
<div class="Menu">
<select class="Style" onchange="checkStyle(this);">
<option value='1' selected='selected'>Style 1</option>
<option value='2'>Style 2</option>
<option value='3'>Style 3</option>
<option value='4'>Style 4</option>
</select>
</div>
Спасибо всем.