Archives par étiquette : javascript

[Javascript] Connaitre le nombre de jours d’un mois

Quand on a l’habitude de coder en PHP et que l’on doit se mettre au javascript pour enrichir les interfaces on est vite limité par certaines fonctions pourtant si évidentes en PHP. Dernier exemple pour moi : récupérer le nombre de jours d’un mois donné de façon simple, sans calcul… En un mot un équivalent à la fonction suivante :

date(‘t’, $date);

J’ai eu beau chercher sur le net je n’ai pas réussi à mettre la main sur une fonction équivalente – l’objet Date de javascript ne prenant pas en charge cette fonctionnalité pourtant très utile. Et comme souvent dans ce cas je me suis mis à bidouiller jusqu’à trouver la solution. Celle-ci est tellement simple et efficace que j’ai décidé de vous la faire partager :

function getNbJours(date){
return new Date(date.getFullYear(), date.getMonth()+1, -1).getDate()+1;
}

Il s’agit donc de créer une nouvelle date temporaire dont l’année soit la même, le mois m+1 (n’oubliez pas que les mois sont les mois ordonnés dans l’ordre de 0 à 11) et le jour à -1. On récupère ensuite le jour de cette date auquel on ajoute 1 (oui je ne sais pas pourquoi il faut ajouter 1, mais de tous mes essais ça fonctionne sans soucis).

Petite note de service : je suis sur une mission qui me prend un peu plus de temps que la normale et je ne pourrais donc pas mettre à jour mon blog aussi souvent que d’habitude. Par ailleurs je ne peux pas tweeter, mais je vous laisse le soin de me suivre quand même : @Paul_Da_Silva – retour à une activité normale programmé le 31 mai… D’ici là comptez sur moi pour faire de mon mieux pour continuer à vous fournir un maximum de contenu intéressant 😉

[Facebook] Voir le contenu d’une fanpage sans avoir à devenir fan

Je sais pas vous (enfin si j’ai quand même une vague idée) mais moi je suis fatigué de voir ce type de pages pulluler sur le réseau social des jeunes. Je veux bien sûr parler des fanpage dont il faut devenir membre pour voir le contenu. Souvent le contenu en question n’est pas des plus intéressant mais le titre est suffisamment aguicheur pour qu’un nombre colossal de pigeons se laissent avoir et oublient de quitter les groupes une fois le « précieux » contenu découvert. Ces listes de pigeons servent ensuite à envoyer de la pub soit via le mur soit directement par messages.

Je me suis un peu penché sur le problème et y ai trouvé une solution très simple et diablement efficace : une seule ligne de javascript (pondue par mes soins un jour de repos !) qui permet d’afficher le contenu caché sans avoir à rejoindre quoi que ce soit.

La ligne en question la voici :

javascript:spans=document.getElementById("tab_canvas").getElementsByTagName("span"); for(var sp in spans){spans[sp].style.visibility="visible"}

Pour que cela fonctionne il faut que vous soyez sur l’onglet de la page qui contient le contenu caché. Souvent il s’agit du premier onglet à être ouvert quand vous cliquez sur un lien. Ensuite vous avez deux solutions : la copier/coller dans la barre d’adresse à la place de l’url et valider avec la touche entrée comme si vous veniez d’entrer une réelle url. Ou, plus simple, ajouter un favoris dans votre navigateur dont l’adresse serait cette fameuse ligne. En plaçant le favoris dans la barre personnelle de Firefox par exemple vous n’aurez plus qu’à cliquer sur le bouton pour que le contenu de la page se mette à jour en direct.

Comment et pourquoi cela fonctionne

Le principe de ces pages est très simple : le créateur ajoute un onglet à sa page pour y faire figurer son contenu et décide de n’afficher le contenu qu’aux membres en le cachant aux autres dans un bête <span> caché par la propriété CSS visibility:hidden. Partant de là il suffit de parcourir tous les spans de la page affichée et de transformer la propriété visibility:hidden en visibility:visible.

Bien sûr cette méthode ne fonctionne que pour les balises <span> et uniquement si celles-ci ont été cachées en utilisant la propriété visibility. Mais jusqu’à présent je n’ai pas trouvé une seule page sur laquelle cela ne soit pas fait comme cela.

Petit conseil aux super développeurs qui ont pondu un concept du genre : utilisez des <div> ou d’autres balises et les propriétés display ou opacity pour continuer à ferrer du pigeon ! Et quand ça ne suffira plus il faudra songer à cacher le contenu côté serveur et à le faire apparaître en Ajax ^^