Реклама на сайте Advertise with us

JavaScript подменить дефолтный href у stylesheet

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 03/07/11 в 13:41       Ответить с цитатойцитата 

Как можно заменить у уже существующего в документе
<link rel="stylesheet" id="css1" type="text/css" href="styles/index.css" media="all">
href, например на href="styles/index_xxx.css"?

Интересует именно при наличии дефолтного пути. Так как
Код:
if (...) document.write ('<link rel="stylesheet" id="css1" type="text/css" href="styles/index.css" media="all">')
else
document.write ('<link rel="stylesheet" id="css1" type="text/css" href="styles/index_xxx.css" media="all">');

и так понятно.

®

0
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 03/07/11 в 14:03       Ответить с цитатойцитата 

document.getElementById('css1').href = 'styles/index_xxx.css';

8
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 03/07/11 в 14:13       Ответить с цитатойцитата 

Бля! Забыл убрать из кода id="css1 от старого эксперимента!
Не прокатывает с id. Стили накладываются друг на друга и срабатываю только те правила, которых нет в index.css

Может можно как-то регулярным выражением подменить?

®

0
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 03/07/11 в 14:32       Ответить с цитатойцитата 

Vyacheslav писал:
Не прокатывает с id. Стили накладываются друг на друга и срабатываю только те правила, которых нет в index.css

Странно, попробуй добавить:
Код:
<meta http-equiv="PRAGMA" content="NO-CACHE" />

8
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 03/07/11 в 14:45       Ответить с цитатойцитата 

gimcnuk писал:
Странно, попробуй добавить:
Код:
<meta http-equiv="PRAGMA" content="NO-CACHE" />

Не в этом смысле! Старые стили перебивают часть новых. Видны только небольшие изменения - это как раз несколько стилей из второго css файла.
Всёё же добавыли как ты сказал, не помогло.

Для этого варианта надо как-то обнулить сначала текущий \ дефолтный набор стилей, а затем применять document.getElementById('css1').href = 'styles/index_xxx.css';

®

0
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 03/07/11 в 15:45       Ответить с цитатойцитата 

Посмотрел дебаггером. Если уж быть точным, то этот код
document.getElementById('css1').href = 'styles/index_xxx.css';
делает следкющее:
Код:
<link rel="stylesheet" id="css1" type="text/css" href="styles/index.css" href="styles/index_xxx.css" media="all">

®

0
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 04/07/11 в 17:00       Ответить с цитатойцитата 

Короче грабли какие-то!
UP

®

0
 

programmer

С нами с 08.12.02
Сообщения: 7613
Рейтинг: 5760

Ссылка на сообщениеДобавлено: 04/07/11 в 20:19       Ответить с цитатойцитата 

полныйтпуть мей би?

крипта на ByBit

8
 



С нами с 20.02.06
Сообщения: 248
Рейтинг: 366

Ссылка на сообщениеДобавлено: 05/07/11 в 00:05       Ответить с цитатойцитата 

Браузер то какой? У меня всё работает

alert(document.getElementById('css1').href) что говорит?

8
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 05/07/11 в 00:11       Ответить с цитатойцитата 



Firefox.
Что именно работает? Я же говорю, что в дебагере видно, что накладываются как раз оба стиля. Т.е. оно то работает, но на половину. Старые стили получаются приоритетнее новых.

Т.е., если в стиле index.css есть A {color:#СС0000}, а в index_xxx.css - A {color:#00FF00; text-decoration:none;}, то в результате это скрипта d документе будет смесь A {color:#СС0000; text-decoration:none;}

®

0
 



С нами с 20.02.06
Сообщения: 248
Рейтинг: 366

Ссылка на сообщениеДобавлено: 05/07/11 в 00:40       Ответить с цитатойцитата 

Vyacheslav писал:
Что именно работает?

ВСЁ работает. FF3.6.18. В файрбаге видно, что стили заменяются, а не накладываются. Проверь в другом браузере

И всё-таки, alert что выводит? Элемент с id=css1 точно единственный на странице?

8
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 05/07/11 в 09:30       Ответить с цитатойцитата 

Firefox 5.0
Алерт показывает пустой в этом коде:

Код:
<html>
<head>
<link rel="stylesheet" id="css1" type="text/css" href="styles/index.css" media="all">
<script type="text/javascript">
alert(document.getElementById('css1').href);
document.write ('<link rel="stylesheet" id="css1" type="text/css" href="styles/index_xxx.css" media="all">');
</script>
</head>
<body>
</body>
</html>

®

0
 



С нами с 20.02.06
Сообщения: 248
Рейтинг: 366

Ссылка на сообщениеДобавлено: 05/07/11 в 11:03       Ответить с цитатойцитата 

Вот что у меня показывает твой код: http://clip2net.com/s/12n9U
Попробуй в другом браузере. С кодом всё в порядке

8
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 05/07/11 в 12:02       Ответить с цитатойцитата 

Всё верно, проблема была походу в том, что я запускал из дримвивера..
Алерт отображает в хроме: file:///C:\temp\styles\index.css

Вот результаты Firebug

Chrome 12:
Код:
<html><head>
<link rel="stylesheet" id="css1" type="text/css" href="styles/index.css" media="all">
<script type="text/javascript">
alert(document.getElementById('css1').href);
document.write ('<link rel="stylesheet" id="css1" type="text/css" href="styles/index_xxx.css" media="all">');
</script><link rel="stylesheet" id="css1" type="text/css" href="styles/index_xxx.css" media="all">
</head>
<body>


</body></html>


Firefox 5.0
Код:
<html>
<head>
<link id="css1" media="all" href="styles/index.css" type="text/css" rel="stylesheet">
<script type="text/javascript">
alert(document.getElementById('css1').href);
document.write ('<link rel="stylesheet" id="css1" type="text/css" href="styles/index_xxx.css" media="all">');
</script>
<link id="css1" media="all" href="styles/index_xxx.css" type="text/css" rel="stylesheet">
</head>
<body> </body>
</html>


Как я и говорил, вставляются оба стиля.

®

0
 



С нами с 20.02.06
Сообщения: 248
Рейтинг: 366

Ссылка на сообщениеДобавлено: 05/07/11 в 12:14       Ответить с цитатойцитата 

Ну прально, второй через document.write вставляется. Или я что-то не понял?

8
 

нет судьбы

С нами с 27.03.03
Сообщения: 4427
Рейтинг: 4204


Передовик Master-X (16.07.2011) Передовик Master-X (16.10.2011) Передовик Master-X (01.11.2011) Передовик Master-X (16.11.2011) Передовик Master-X (01.01.2012) Ветеран трепа Master-X (16.02.2012)
Ссылка на сообщениеДобавлено: 05/07/11 в 12:21       Ответить с цитатойцитата 

Блин! Ты прав, туплю.. icon_smile.gif
document.getElementById('css1').href = 'styles/index_xxx.css'; сработало!

®

1
 



С нами с 20.02.06
Сообщения: 248
Рейтинг: 366

Ссылка на сообщениеДобавлено: 05/07/11 в 13:21       Ответить с цитатойцитата 

smail54.gif

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »