JavaScript (1996)

Home

Besoin

Ajouter de la logique programmable aux pages Web.

Conception

JavaScript est un langage interprété.

Il est exécuté :

JavaScript peut être utilisé en mode procédural mais supporte une notation OO permettant de créer des classes d'objets dynamiquement.

Implémentation

Sa syntaxe s'inspire de celle du langage Java (d'où son nom), mais c'est là leur seul point commun.

Cependant, intégré dans une page HTML, il apparaît :

Exemples

Un exemple de code JavaScript est :

document.write ("Hello World !");

Intégré dans page HTML, il apparaît comme suit :

<html>
  <head>
    <title>Page contenant un exemple de JavaScript</title>
  <head>
  <body>
    Voici un exemple de code JavaScript :
    <script language="JavaScript">
      <!--
        document.write ("Hello World !");
      -->
    </script>

  </body>
</html>

Notes

Limitations

Trucs

Détecter le niveau de support de JavaScript

<html>
  <head><title>
Detecteur JavaScript pour navigateur</title>
  <script language="JavaScript">
  <!--
    ver = 10;
  //-->

  </script>
  <script language="JavaScript1.1">
  <!--
    ver = 11;
  //-->

  </script>
  <script language="JavaScript1.2">
  <!--
    ver = 12;
  //-->

  </script>
  <script language="JavaScript">
  <!--
    function nextPage()
    {
      // Si le navigateur est de type 4.0 on utilise latestver.html
      if (navigator.userAgent.indexOf (
"4.0") >= 0) {
        window.location =
"latestver.html";
      }
      else if (ver >= 11) {  // Sinon on regarde s'il ont JavaScript 1.1 avant d'utiliser newver.html
      {
        window.location =
"newver.html";
      }
      else // Par défaut on choisit oldver.html pour tous les autres.
      {
        window.location =
"oldver.html";
      }
    }
    // -->

  </script>
  </head>

  <body>
    <!-- Met oldver.html sur le lien pour les navigateurs qui n'ont pas JavaScript -->
    <a href="oldver.html" onClick="nextPage(); return false;">mon lien</a>
  </body>
</html>

Ouvrir une nouvelle fenêtre

window.open("http://www.javarome.net")

Faire communiquer une applet Java avec JavaScript 

La communication entre JavaScript et une applet Java est possible grâce à LiveConnect, qui est automatiquement fournit à partir de Netscape Navigator 3.0 et activé par la double activation de Java et JavaScript dans la configuration du navigateur.

Une applet ne peut accéder à JavaScript et les objets que si elle importe le package netscape.javascript qui définit les classes JSObject et JSException :

import netscape.javascript.*;

De l'autre côté, le document HTML intégrant cette applet doit autoriser celle-ci à communiquer avec JavaScript grâce au paramètre mayscript du tag <applet>. Par exemple :

<applet code="monApplet.class" width=100 height=100 mayscript></applet>

La classe Java JSObject permet alors d'accéder aux objets JavaScript de la page, à commencer par l'objet window, récupérable à l'aide de la fonction getWindow() :

JSObject win = JSObject.getWindow (this);

Tout sous-objet ou propriété peut ensuite être accédé via la fonction getMember(nomObjet). Par exemple :

JSObject doc         = (JSObject) win.getMember ("document"); 
JSObject formulaire  = (JSObject) doc.getMember ("testForm"); 
JSObject caseACocher = (JSObject) formulaire.getMember ("testCheck"); 
Boolean  estCochee   = (Boolean)  caseACocher.getMember ("checked");
 

Les méthodes JavaScript, qu'elles soit utilisateur ou système, peuvent alors être appelées de deux manières différentes.

Soit via la méthode call() de la classe JSObject, en passant en paramètres le nom de la méthode et un tableau de ses arguments (ne pouvant pas être null mais pouvant contenir une chaîne vide) :

String arguments[] = {"premierArg", "secondArg"}; 
win.call ("nomMethode", arguments); 

soit via la méthode eval() de cette classe, qui reçoit en paramètre une chaîne JavaScript à exécuter. Par exemple :

win.eval ("nomMethode(" + premierArg + "," + secondArg + ")");

Connaître le navigateur utilisé pour lire votre page 

Faire communiquer JavaScript avec une applet Java 

La communication entre JavaScript et une applet Java est possible grâce à LiveConnect, qui est automatiquement fournit à partir de Netscape 3.0 et activé par la double activation de Java et JavaScript dans la configuration du navigateur.

Les packages et classes Java font alors partie pour JavaScript de l'objet Packages. On peut alors appeler la méthode d'une classe Java selon la syntaxe suivante :

Packages.nomPackage.nomClasse.nomMéthode(paramètres)

(A noter que les alias java, sun et netscape désignent respectivement Packages.java, Packages.sun et Packages.netscape).

Les applets Java présentes dans un document sont alors référençables à partir de l'objet document, selon les syntaxes suivantes, au choix :

Voici un l'exemple d'une applet affichant le nombre de clics effectués sur sa surface depuis sa création (essayez donc) :



Il est possible dans cet exemple pour JavaScript de communiquer avec l'applet, dans un sens (ajouter un clic à l'applet, fixer le nouveau nombre de clics de l'applet) comme dans l'autre (lire le nombre de clics de l'applet), comme le montrent les boutons suivants : 

Ecrire un cookie

Un cookie est une chaîne de caractères de la forme :

nom=valeur;expires=dateExpiration;

L'écriture d'un cookie peut s'effectuer par...

Voir

Home