Java Script (affichage de modification de page)
Java Script (affichage de modification de page)
Bonjour
Essayant Firefox en lieu et place d'IE, j'ai remarqué que le petit java script
affichant la dernière date de modification d'une page sur mon site
(www.gueuledebois.org) ne marchait plus.
Voila le texte du script (qui fonctionne avec IE):
<script language=JavaScript><!--
document.write(+
document.lastModified.substring(3,5)+"." +document.lastModified.substring(0,2)+"." +document.lastModified.substring(6,10));
//--></script>
Merci de m'aider à résoudre ce petit problème.
Cordialement
Golfech
gueule@free.fr
Essayant Firefox en lieu et place d'IE, j'ai remarqué que le petit java script
affichant la dernière date de modification d'une page sur mon site
(www.gueuledebois.org) ne marchait plus.
Voila le texte du script (qui fonctionne avec IE):
<script language=JavaScript><!--
document.write(+
document.lastModified.substring(3,5)+"." +document.lastModified.substring(0,2)+"." +document.lastModified.substring(6,10));
//--></script>
Merci de m'aider à résoudre ce petit problème.
Cordialement
Golfech
gueule@free.fr
-
- Iguane
- Messages : 979
- Inscription : 09 juil. 2004, 15:41
Peut-être :
...
De toute façon, que te dit la console javascript ?
- <script language="JavaScript">
- document.write(+doc... : le + alors qu'il n'y a pas concaténation là ?
- ...+document.lastModified.substring(0,2)+"." ... : est-ce que ça commence bien à zéro, ce n'est pas plutôt substring(1,2) ?

De toute façon, que te dit la console javascript ?
openSUSE 12.2 - FF v24.0 FR - TB v24.0 FR ma config en détails - Décrivez la vôtre ici 
userContent.css : modifiez l'apparence et le contenu des sites visités !

userContent.css : modifiez l'apparence et le contenu des sites visités !
Je te propose à la place
Code : Tout sélectionner
<script type="text/javascript">
<!--
var modif = new Date (document.lastModified);
var jour = modif.getDate();
var mois = modif.getMonth() + 1;
var an = modif.getYear();
if(an < 999) an += 1900;
obj = document.getElementsByTagName('body')[0];
para = document.createElement("p");
texte = document.createTextNode(jour + "/" + mois + "/" + an);
para.appendChild(texte);
obj.appendChild(para);
//-->
</script>
Il y a moyen de faire mieux
Le début a été modifié pour ajouter un zéro au jour et au mois lorsqu'il est inférieur à 10, utiliser getFullYear() pour éviter un if et une variable inutile, et enfin vérifier qu'on a bien obtenu un objet avant d'essayer de lui ajouter un paragraphe.

Code : Tout sélectionner
<script type="text/javascript">
<!--
var modif = new Date (document.lastModified);
var jour = modif.getDate() > 9 ? modif.getDate() : '0'+modif.getDate();
var mois = modif.getMonth() + 1;
if (mois < 10) mois = '0'+mois;
if (obj = document.getElementsByTagName('body')[0]) {
para = document.createElement("p");
texte = document.createTextNode(jour + "/" + mois + "/" + modif.getFullYear());
para.appendChild(texte);
obj.appendChild(para);
}
//-->
</script>
configuration (j'ai honte!)
Windows XP sp2 (je ne connais pas grand chose à Linux bien que ça me paraisse puissant, désolé...
essais
Merci pour l'aide.
J'ai essayé les 2 derniers scripts, s'ils fonctionnent bien sur Firefox, ils bloquent l'ouverture de la page sur IE6 (du moins en local).
Ces scripts insèrent aussi un saut de paragraphe aprés la phrase
"site modifié le :" que je voudrais garder sur la même ligne que la date mise à jour.
Précision, le script que j'utilise actuellement (voir 1er post) affiche sur Firefox:
"site modifié le: NaN. Su, De"
Je sais, suis chiant...
J'ai essayé les 2 derniers scripts, s'ils fonctionnent bien sur Firefox, ils bloquent l'ouverture de la page sur IE6 (du moins en local).
Ces scripts insèrent aussi un saut de paragraphe aprés la phrase
"site modifié le :" que je voudrais garder sur la même ligne que la date mise à jour.
Précision, le script que j'utilise actuellement (voir 1er post) affiche sur Firefox:
"site modifié le: NaN. Su, De"
Je sais, suis chiant...
Ah oui c'est vrai que ça fait partie du même paragraphe. Je n'avais pas vu que tu avais donné l'adresse de ton site. Le mieux alors est de mettre ça dans le script aussi.
À la place de :
Mettre
et (ou pourquoi pas dans un fichier js externe si tu veux le réutiliser dans d'autres pages)
L'avantage est que si le script foire, la ligne ne sera tout simplement pas affichée et personne n'en saura rien. Fonctionne très bien sous IE, Opera, Mozilla et Firefox chez moi.
Edit: je mets le sujet dans Développement Web parce que ça aura plus de chance de servir à d'autres à-bas
À la place de :
Code : Tout sélectionner
<div align="center">Dernière modification de ce site :
<script language=JavaScript><!--
document.write(+
document.lastModified.substring(3,5)+"." +document.lastModified.substring(0,2)+"." +document.lastModified.substring(6,10));
//--></script>
<br>
</div>
Code : Tout sélectionner
<div id="lastmod" style="text-align: center;"></div>
Code : Tout sélectionner
<script type="text/javascript">
<!--
var modif = new Date (document.lastModified);
var jour = modif.getDate() > 9 ? modif.getDate() : '0'+modif.getDate();
var mois = modif.getMonth() + 1;
if (mois < 10) mois = '0'+mois;
if (obj = document.getElementById("lastmod")) {
para = document.createElement("p");
texte = document.createTextNode("Site modifié le : "+jour + "/" + mois + "/" + modif.getFullYear());
para.appendChild(texte);
obj.appendChild(para);
}
//-->
</script>
Edit: je mets le sujet dans Développement Web parce que ça aura plus de chance de servir à d'autres à-bas

-
- Lézard vert
- Messages : 194
- Inscription : 13 nov. 2004, 08:54
Merci à tous
Merci à tous et à Benoit en particulier.
Le script fonctionne correctement.
Cordialement.
Le script fonctionne correctement.
Cordialement.
bonjour,
j'avais un script équivalent sur ma page ASP et je n'avais pas constaté que la date donnée était celle du jour
autrement dit que la date document.lastModified se modifiait tout les jours malgré que la page n'était pas modifiée
après quelques recherches il semblerait que cette date javascript ne fonctionne pas en ASP ou PHP puisque le document est généré dynamiquement et donc la page vue dans le browser est modifiée au moment de la lecture
Quelques pistes trouvées ...
n'a pas l'air de fonctionner en local ni sur mon serveur ... n'étant pas spécialiste je n'ai pas trop cherché dans cette direction
EN PHP non plus, si quelqu'un connait la solus ... ce serait bien de la communiquer
par contre en ASP j'ai trouvé cette solution qui fonctionne très bien
Présentation de la date en anglais ... pour le français on peut utiliser :
session.lcid=1036 OU mettre les mois en array
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
j'avais un script équivalent sur ma page ASP et je n'avais pas constaté que la date donnée était celle du jour
autrement dit que la date document.lastModified se modifiait tout les jours malgré que la page n'était pas modifiée
après quelques recherches il semblerait que cette date javascript ne fonctionne pas en ASP ou PHP puisque le document est généré dynamiquement et donc la page vue dans le browser est modifiée au moment de la lecture
Quelques pistes trouvées ...
Code : Tout sélectionner
<!--#config timefmt="%d/%m/%Y - %Hh%M" -->
<!--#echo var="LAST_MODIFIED" -->
EN PHP non plus, si quelqu'un connait la solus ... ce serait bien de la communiquer

par contre en ASP j'ai trouvé cette solution qui fonctionne très bien
Code : Tout sélectionner
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set rs = fs.GetFile(Server.MapPath("last_modified.asp"))
modified = rs.DateLastModified
response.write(DAY(modified) & " " & MonthName(Month(modified)) & _
" " & YEAR(modified) )
session.lcid=1036 OU mettre les mois en array
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322)
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités