Preciso atualizar algumas centenas de páginas HTML estáticas que têm a data de direitos autorais codificada no rodapé. Quero substituí-lo por algum JavaScript que será atualizado automaticamente a cada ano.
Atualmente estou usando:
<script type="text/javascript">var year = new Date();document.write(year.getFullYear());</script>
Isso é o mais curto possível?
javascript
html
date
tpow
fonte
fonte
document.write
para conteúdo embutido durante a fase de análise inicial (como mostrado acima, em uma<script>...</script>
tag - ou em um.js
arquivo carregado com umascript
tag semdefer
ouasync
). Quando a página é totalmente analisada, o fluxo de documentos é fechado e o uso édocument.write
reaberto - substituindo completamente o documento por um novo. Se você deseja adicionar um ano após a conclusão da análise principal, use o DOM. (Isto não é uma mudança, que sempre foi assim.)A resposta de TJ é excelente, mas encontrei um cenário em que meu HTML já estava renderizado e o script document.write sobrescreveria todo o conteúdo da página apenas com a data do ano.
Nesse cenário, você pode anexar um nó de texto ao elemento existente usando o seguinte código:
fonte
createTextNode()
não interpreta html como<br>
como criar um nó com HTML?Se você deseja incluir um período no futuro, com o ano atual (por exemplo, 2017) como o ano inicial, para que no próximo ano apareça assim: “© 2017-2018, Company.”, Use o código a seguir . Ele será atualizado automaticamente a cada ano:
© Copyright 2017-2018, Empresa.
Mas se o primeiro ano já passou, o código mais curto pode ser escrito assim:
fonte
fonte
A solução JS funciona muito bem, mas eu recomendaria uma solução do lado do servidor. Alguns dos sites que eu verifiquei tiveram esse problema da página inteira ficando em branco e apenas o ano sendo visto de vez em quando.
A razão para isso foi a document.write realmente escreveu sobre o documento inteiro.
Pedi ao meu amigo para implementar uma solução no servidor e funcionou para ele. O código simples em php
Aproveitar!
fonte
document.write
foi usado após o DOM já estar carregado. A solução é não usardocument.write
depois que todo o DOM for carregado ou, melhor ainda, não usardocument.write
.Aqui está a versão mais curta e mais responsável que funciona até no AD e no BC.
[tambor rola ...]
É isso aí. 6 bytes mais curtos que a resposta aceita.
Se você precisar ser compatível com ES5, poderá optar por:
fonte
Esta é a melhor solução que posso pensar que funcionará com JavaScript puro. Você também poderá estilizar o elemento, pois ele pode ser direcionado em CSS. Basta adicionar no lugar do ano e ele será atualizado automaticamente.
fonte
fonte
Para o React.js, o seguinte funcionou para mim no rodapé ...
fonte
de acordo com a auditoria do chrome
então a solução sem erros é:
fonte