J'ai besoin de mettre à jour quelques centaines de pages HTML statiques dont la date de copyright est codée en dur dans le pied de page. Je veux le remplacer par du JavaScript qui sera mis à jour automatiquement chaque année.
Actuellement j'utilise:
<script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script>
Est-ce aussi court que possible?
javascript
html
date
tpow
la source
la source
document.write
pour le contenu en ligne que pendant la phase d'analyse initiale (comme illustré ci-dessus, dans une<script>...</script>
balise - ou dans un.js
fichier chargé avec unescript
balise sansdefer
ouasync
). Lorsque la page est entièrement analysée, le flux de documents est fermé, et l'utilisation ledocument.write
rouvre - en remplaçant complètement le document par un nouveau. Si vous souhaitez ajouter un an après la fin de l'analyse principale, vous souhaitez utiliser le DOM. (Ce n'est pas un changement, ça a toujours été comme ça.)La réponse de TJ est excellente mais je suis tombé sur un scénario où mon HTML était déjà rendu et le script document.write écraserait tout le contenu de la page avec seulement l'année de la date.
Pour ce scénario, vous pouvez ajouter un nœud de texte à l'élément existant à l'aide du code suivant:
la source
createTextNode()
n'interprète pas le HTML comme<br>
comment créer un nœud avec HTML?Si vous souhaitez inclure un laps de temps à l'avenir, avec l'année en cours (par exemple 2017) comme année de début afin que l'année prochaine, elle apparaisse comme ceci: «© 2017-2018, Company.», Puis utilisez le code suivant . Il sera automatiquement mis à jour chaque année:
© Copyright 2017-2018, Société.
Mais si la première année s'est déjà écoulée, le code le plus court peut être écrit comme ceci:
la source
la source
La solution JS fonctionne très bien mais je conseillerais une solution côté serveur. Certains des sites que j'ai consultés avaient ce problème de la page entière vide et seulement l'année étant vue de temps en temps.
La raison en est que document.write a en fait écrit sur tout le document.
J'ai demandé à mon ami d'implémenter une solution côté serveur et cela a fonctionné pour lui. Le code simple en php
Prendre plaisir!
la source
document.write
été utilisée après le DOM déjà chargé. La solution est de ne pas utiliserdocument.write
après tous les chargements DOM, ou, mieux encore, de ne pas utiliserdocument.write
du tout.Voici la version la plus courte et la plus responsable ultime qui fonctionne même à la fois AD et BC.
[rouleaux de tambour ...]
C'est tout. 6 octets de moins que la réponse acceptée.
Si vous devez être compatible ES5, vous pouvez vous contenter de:
la source
C'est la meilleure solution à laquelle je puisse penser qui fonctionnera avec du JavaScript pur. Vous pourrez également styliser l'élément car il peut être ciblé en CSS. Ajoutez simplement à la place de l'année et il sera automatiquement mis à jour.
la source
la source
Pour React.js, voici ce qui a fonctionné pour moi dans le pied de page ...
la source
selon l'audit chrome
donc une solution sans erreur est:
la source