Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Ещё раз изменение css файла посредством javascript (https://javascript.ru/forum/events/39687-eshhjo-raz-izmenenie-css-fajjla-posredstvom-javascript.html)

JSN 08.07.2013 12:55

Ещё раз изменение css файла посредством javascript
 
Я знаю, что эта тема уже много раз обсуждалась, я прочитал много статей, но так ничего и не понял, ибо я нуб.
Есть много длинных решений, в которых я не смог разобраться, а ставить то, не знаю что я не хочу.
Однако меня заинтересовали два решения в одну строчку, которые тем не менее у меня не заработали:
1. Изменение href через .setAttribute, которое просто ломает код:
document.getElementBy...('...').setAttribute('href', 'style.css');

2. Изменение href через .href, однако это решение у меня не сработало, а попытки получить доступ к href таким образом выдают мне undefined:
document.getElementBy...('...').href = 'style.css';

Могут ли эти решения вообще работать? Если да, то зачем нужны более длинные решения?
:help: , заранее благодарю

animhotep 08.07.2013 13:02

так работает этот метод
в html
<link rel="stylesheet" href="css/screen.css" id="myStyle">

в js
var style = document.getElementById('myStyle');
style.href = 'css/newStyle.css'

рони 08.07.2013 13:04

JSN,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <link rel="stylesheet" type="text/css" href="123456">
</head>

<body>
   <script>
    var link = document.getElementsByTagName('link')[0]
    alert(link.href);
    link.href="http://javascript.ru/forum/clientscript/vbulletin_css/style-97d6914a-00003.css"
   </script>
</body>

</html>

JSN 08.07.2013 13:10

Спасибо, заработало.
.setAttribute тоже работает, это был чисто мой косяк, я описался и не заметил.

danik.js 08.07.2013 13:28

setAttribute не рекомендуется использовать.

Сергей Ракипов 27.03.2020 09:48

А я правильно понял что для js не нужно указывать путь к папке которая находится в head для css, он видимо прочтет с конца строки а вот на которую нужно заменить нужно указать.

Сергей Ракипов 27.03.2020 10:02

Цитата:

Сообщение от animhotep (Сообщение 260949)
так работает этот метод
в html
<link rel="stylesheet" href="css/screen.css" id="myStyle">

в js
var style = document.getElementById('myStyle');
style.href = 'css/newStyle.css'

А почему когда я пишу через getElementById у меня не работает а когда пишу через querySelector все работает

рони 27.03.2020 10:26

Цитата:

Сообщение от Сергей Ракипов
А почему

а где код?

Сергей Ракипов 27.03.2020 10:42

Цитата:

Сообщение от рони (Сообщение 521808)
а где код?

А все моя ошибка я был не внимательный


А что с этим вопросом


А я правильно понял что для js не нужно указывать путь к папке которая находится в head для css, он видимо прочтет с конца строки а вот на которую нужно заменить нужно указать.

document.getElementsByTagName("link")[1].href = "css/print.css";


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