Мне нужно обновить несколько сотен статических HTML-страниц с жестко заданной датой авторского права в нижнем колонтитуле. Я хочу заменить его на JavaScript, который будет автоматически обновляться каждый год.
В настоящее время я использую:
<script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script>
Это так коротко, как только можно?
javascript
html
date
tpow
источник
источник
document.write
встроенный контент на начальном этапе синтаксического анализа (как показано выше, в<script>...</script>
теге - или в.js
файле, загруженномscript
тегом безdefer
илиasync
). Когда страница полностью проанализирована, поток документов закрывается, и, используяdocument.write
его, снова открывается, полностью заменяя документ новым. Если вы хотите добавить год после завершения основного анализа, вы хотите использовать DOM. (Это не изменение, это всегда было так.)Ответ TJ превосходен, но я столкнулся с одним сценарием, когда мой HTML-код уже отображался, и сценарий document.write перезаписывал все содержимое страницы только датой года.
Для этого сценария вы можете добавить текстовый узел к существующему элементу, используя следующий код:
источник
createTextNode()
не интерпретирует HTML, как,<br>
как вы создаете узел с HTML?Если вы хотите включить временные рамки в будущем с текущим годом (например, 2017) в качестве начального года, чтобы в следующем году он выглядел следующим образом: «© 2017-2018, Company.», Затем используйте следующий код , Он будет автоматически обновляться каждый год:
© Copyright 2017-2018, Компания.
Но если первый год уже прошел, самый короткий код можно записать так:
источник
источник
Решение JS прекрасно работает, но я бы посоветовал решение на стороне сервера. На некоторых сайтах, которые я проверил, эта проблема со всей страницей стала пустой и только год был виден время от времени.
Причиной этого был document.write, фактически записанный по всему документу.
Я попросил моего друга внедрить решение на стороне сервера, и оно сработало для него. Простой код в php
Наслаждайтесь!
источник
document.write
она использовалась после того, как DOM уже загружен. Решение состоит в том, чтобы не использоватьdocument.write
после всех загрузок DOM или, что еще лучше, вообще не использоватьdocument.write
.Вот самая короткая и ответственная версия, которая работает как в AD, так и в BC.
[барабанные дроби ...]
Вот и все. 6 байт короче принятого ответа.
Если вам нужно быть совместимым с ES5, вы можете согласиться на:
источник
Это лучшее решение, которое я могу придумать, которое будет работать с чистым JavaScript. Вы также сможете стилизовать элемент, так как он может быть нацелен на CSS. Просто добавьте вместо года, и он будет автоматически обновляться.
источник
источник
Для React.js, вот что работает для меня в нижнем колонтитуле ...
источник
согласно хром-аудиту
Итак, решение без ошибок:
источник