La façon d'ajouter du code javascript au client est de le placer dans l'URL après le spécificateur de pseudo-protocole javascript :. Ce type de protocole spécial déclare que le corps de l'URL est du code JavaScript arbitraire, exécuté par l'interpréteur JavaScript. Si le code javascript dans javascript:URL contient plusieurs instructions, ces instructions doivent être séparées par des points-virgules. Une telle URL ressemble à ceci :
javascript:var now = new Date(); "<h1>The time is:</h1>" + now;
Lorsque le navigateur charge une telle URL, il exécutera le code javascript contenu dans l'URL et affichera la valeur de chaîne de la dernière instruction javascript comme contenu du nouveau document. Cette valeur de chaîne peut contenir un balisage HTML et être formatée de manière à apparaître exactement comme n'importe quel autre document chargé dans le navigateur.
L'URL javascript peut également contenir des instructions javascript qui effectuent uniquement des actions mais ne renvoient pas de valeurs. Par exemple :
javascript:alert("hello world!")
Lorsque ce type d'URL est chargé, le navigateur n'exécute que le code javascript qu'il contient, mais comme il n'y a aucune valeur à afficher en tant que nouveau document, il ne modifie pas le document actuellement affiché.
Habituellement, nous souhaitons utiliser javascript:URL pour exécuter du code javascript qui ne modifie pas le document actuellement affiché. Pour ce faire, vous devez vous assurer que la dernière instruction de l'URL ne renvoie pas de valeur. Une solution consiste à utiliser l'opérateur void pour spécifier explicitement la valeur de retour comme étant sous-définie. Utilisez simplement l'instruction void 0 à la fin du javascript:URL. Par exemple : L'URL suivante ouvrira une nouvelle fenêtre de navigateur vide sans modifier le contenu de la fenêtre actuelle :
javascript:window.open("about:blank"); void 0;
Si cette URL n'a pas d'opérateur void, la valeur de retour de la méthode window.open() sera convertie en chaîne et affichée, et la fenêtre actuelle sera écrasée par le document comme indiqué ci-dessous.