Sunday 10 December 2006

Comment voir les propriétés d'un objet javascript

il n'est pas toujours facile de connaitre les propriétés d'un objet javascript car il n'y a souvent aucune documentation sur les classes javascript. Voici un petit bout de code permettant de lister les propriétés d'un objet avec leurs valeurs:
function getProperties(/*Object*/ obj){
    var msg = "";
    for (prop in obj){
        msg += "property : " + prop + "\t\t value : " + obj[prop] + "\n";
    }
    alert(msg);
}

Thursday 2 November 2006

La "javadoc" de javascript

J'en revais depuis longtemps, je l'ai trouvé : la javadoc pour javascript.
Pour les habitués de la trés fameuse javadoc, il existe la même chose pour javascript : http://krook.org/jsdom/

Wednesday 25 October 2006

Dojo 0.4 est sorti

Au menu de cette nouvelle version
  • Plus de possibilité graphique avec GFX
  • Gestion de l'i18n
  • Plus de fonctions Drag'n'Drop
  • Plein de nouveau widgets dont l'horloge ;)
Plus d'info sur http://dojo.jot.com/WikiHome/Release0Point4

Monday 26 June 2006

Les cookies en javascript

Voici un petit tutorial pour faire de la gestion de cookies en Javascript
cookie est en fait une propriété de l'objet document. Il s'agit donc de bien le manipuler : La syntaxe générale est la suivante :
document.cookie="liste-des-attributs-du-cookie"

Et voici la liste des attribute d'un cookie
  • Un nom et une valeur (nom=valeur): Le nom permet d'identifier le cookie. Sa valeur est un texte qui constitue le contenu du cookie.
  • Une date d'expiration (expires=date-au-format-GMT): Au format GMT (ex: Tue, 31-Dec-2002 08:00:00 GMT), elle est facultative. Si elle est omise, le cookie "meurt" à la fin de la session en cours du navigateur. Si elle est spécifiée on parle d'un "cookie persistant".
  • Un chemin d'accès (path=chemin-d-accès): Il indique la partie de l'URL pour laquelle le cookie est valable. Une page HTML pourra lire les cookies de ses sur-répertoires jusqu'à la racine du site: ex: http://www.domaine.com/repertoire/index.htm lira les cookies des répertoires http://www.domaine.com/ et http://www.domaine.com/repertoire/ En revanche, elle ne pourra pas lire les cookies de ses sous-répertoires: ex: http://www.domaine.com/index.php ne pourra pas lire les cookies du répertoire http://www.domaine.com/repertoire/ Pour qu'un cookie soit accessible depuis tous les répertoires d'un site, il faudra donc spécifier path="/". Enfin, si le chemin d'accès est omis, il prendra la valeur par défaut du chemin de la page HTML qui écrit le cookie, ce qui est dans bien des cas suffisant.
  • Un domaine de validité (domain=domaine-de-validité): Il indique le serveur pour lequel le cookie est valable (ex: www.domaine.com). S'il n'est pas spécifié il prend la valeur par défaut du domaine de la page HTML qui écrit le cookie, ce qui est, dans la grande majorité des cas, l'effet recherché. Pour des raisons de sécurité, il ne semble cependant pas possible (on a essayé), qu'un site web place des cookies qui seront relus par un autre site.
  • Un attribut de sécurité (secure): S'il existe, le cookie ne sera transmis que si la connexion vers le serveur est sécurisée (protocole HTTPS et non HTTP).

Fonction d'Ecriture

<script type="text/javascript" language="JavaScript">
<!--
function EcrireCookie(nom, valeur)
{
var argv=EcrireCookie.arguments;
var argc=EcrireCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=nom+"="+escape(valeur)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}
//-->
</script>

Fonction de Lecture

<script type="text/javascript" language="JavaScript">
<!--
function getCookieVal(offset)
{
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function LireCookie(nom)
{
var arg=nom+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen)
{
var j=i+alen;
if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;

}
return null;
}
//-->
</script>

Fonction de Suppression

<script type="text/javascript" language="JavaScript">
<!--
function EffaceCookie(nom)
{
date=new Date;
date.setFullYear(date.getFullYear()-1);
EcrireCookie(nom,null,date);
}
//-->
</script>