Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переключатель стиля (https://javascript.ru/forum/dom-window/48669-pereklyuchatel-stilya.html)

2chan 11.07.2014 23:11

Переключатель стиля
 
Добрый день. Нужна помощь.
Есть два css файла:

<link rel="stylesheet" type="text/css" href="http://localhost/dir/css/css.css" title="File_css" />
<link rel="alternate stylesheet" type="text/css" href="http://localhost/dir/css/css2.css" title="File_css2" />


И по клику на <a> должны меняться css с первого на второе. Я пробовал пойти так:
1) Поставить только один тег <link>:
<link rel="stylesheet" type="text/css" href="http://localhost/dir/css/css.css" title="File_css" />


2) Создать следующий javascript:
<script>
function style() {
document.getElementsByTagName('link').setAttribute('href', 'http://localhost/dir/css/css2.css');
document.getElementsByTagName('link').setAttribute('title', 'File_css2');
</script>


3) Тег <a> для применения скрипта
<a href="#" onclick="javascript:style();">Сменить стиль</a>


Т.е. По клику javascript должен менять ссылку на css и, соответственно, стиль всей страницы. Но, почему-то, не работает.

Кто может помочь?

2chan 13.07.2014 05:26

Бамп чтоле?

рони 13.07.2014 10:14

Цитата:

Сообщение от 2chan
getElementsByTagName

может вам красное что-то подскажет

2chan 16.07.2014 06:55

Всё, решил.
Если кому интересно, то вот:

function set_stylesheet(styletitle,norefresh)
{
	set_cookie("style",styletitle,365); // добавил сохранение куков

	var links=document.getElementsByTagName("link");
	var found=false;
	for(var i=0;i<links.length;i++)
	{
		var rel=links[i].getAttribute("rel");
		var title=links[i].getAttribute("title");
		if(rel.indexOf("style")!=-1&&title)
		{
			links[i].disabled=true;
			if(styletitle==title) { links[i].disabled=false; found=true; }
		}
	}
	if(!found) set_preferred_stylesheet(); // если не найдено, то вызывается отдельная функция, которая ставит стиль по умолчанию
}


Часовой пояс GMT +3, время: 13:50.