Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   смена CSSна сайте в зависимости от дня недели (https://javascript.ru/forum/dom-window/13723-smena-cssna-sajjte-v-zavisimosti-ot-dnya-nedeli.html)

castor 11.12.2010 17:52

Цитата:

Имелось ввиду как раз наоборот, делать document.write именно в head
Безграмотность процветает... А посмотреть результат такой записи в дереве с помощью любого браузера в лом?

Что-то записать в head можно, только полностью переписав весь документ. Вместе с html, head и body. RTFM.

Sweet 11.12.2010 18:05

Цитата:

Сообщение от castor
Вместе с html, head и body

О каком body идет речь? Такого элемента еще нет:)
<html>
  <head>
    <script type="text/javascript">
    document.write('<link rel="stylesheet" href="style_' + new Date().getDay() + '.css">');
    </script>
  </head>
  <body></body>
</html>

x-yuri 11.12.2010 19:13

Цитата:

Сообщение от castor
А вообще - решение зависит от конкретных условий. Так что вовсе не по-любому.

спасибо Кэп, но в данном конкретном случае - лучше на сервере

Aetae 11.12.2010 22:29

Цитата:

Сообщение от castor (Сообщение 83365)
Безграмотность процветает... А посмотреть результат такой записи в дереве с помощью любого браузера в лом?

Во-во, процветает. Вы как учёный отказывающийся от дедовских методов, только потому, что они дедовские, не удосужившись на них даже взглянуть, не то что понять.

На всякий если ещё не дошло:
<html>
  <head>
    <script type="text/javascript">
    document.write('<link rel="stylesheet" href="style_' + new Date().getDay() + '.css">');
    alert('A где же наше body? Посмотрим: ' + document.body)
    </script>
  </head>
  <body>
    <h1>А вот и body!</h1>
  </body>
</html>

Kolyaj 11.12.2010 23:03

Вобщем-то можно даже так
<html><head>
<script type="text/javascript">document.write('</head>');</script>
<body></body>
</html>

castor 12.12.2010 02:31

не удосужившись на них даже взглянуть, не то что понять

Да, парсеры нынче правильно разбирают, куда какие элементы вставлять в дерево. Тут я не прав. Раньше ситуация была куда как хуже - все добавлялось в body.

Цитата:

если ещё не дошло
Тем не менее, подозреваю, что вы совсем не понимаете, как работает document.write(), да и document.open() вместе с document.close().

Смотрим
<html>
<head>
<script type="text/javascript">
document.write('<link rel="stylesheet" href="test.css">');
document.write('<h1>Ой, а куда меня добавят? Неужто в head?</h1>');
</script>
</head>
<body></body>
</html>


Метод document.write() передает нераспарсенный текст. Кому? Парсеру, конечно. На этом этапе никакого дерева еще нет и быть не может. Потому и обращение к document.body тут абсолютно не при чем.

Aetae 12.12.2010 03:56

Цитата:

Сообщение от castor (Сообщение 83430)
Метод document.write() передает нераспарсенный текст. Кому? Парсеру, конечно. На этом этапе никакого дерева еще нет и быть не может.

...что собсно я и пытался сказать.

ksa 12.12.2010 09:26

Цитата:

Сообщение от dac_60
на csp - не работает.

У тебя на сервере установлено и настроено Cache? :D

Цитата:

Сообщение от monolithed
боюсь даже спросить что это?

Таки уже спросил... :)
Это вставка COS (Каше Обжект Скрипт) в хтмл...
#(...)#

Это дата в формате хоролог <количество_дней_с_1800_года>,< количество_секунд_с_полуно� �и>
$h
Это бинарная операция остаток от деления N на M
N#M

Возможно там придется прибавить что-то для коррекции дня недели но это уже не принципиально...

Kolyaj 12.12.2010 14:26

Цитата:

Сообщение от castor
Метод document.write() передает нераспарсенный текст. Кому? Парсеру, конечно. На этом этапе никакого дерева еще нет и быть не может. Потому и обращение к document.body тут абсолютно не при чем.

Но он таки парсится в процессе.
<html><head></head>
<body id="body_id">
    <script type="text/javascript">document.write(document.body.id);</script>
</body></html>

Sweet 12.12.2010 15:05

Цитата:

Сообщение от castor
Что-то записать в head можно, только полностью переписав весь документ.

Цитата:

Сообщение от castor
На этом этапе никакого дерева еще нет и быть не может.

castor, вы начинаете путаться в показаниях:) Это, видимо, происходит потому, что вы отвечаете на сообщения "не удосужившись на них даже взглянуть, не то что понять":p


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