Introduction au javascript

Le Javascript est supporté par tous les navigateurs

Le JavaScript est souvent utilisé comme un langage de script côté client. Cela signifie que le code JavaScript est écrit dans une page HTML. Quand un internaute fait une requête sur une page HTML avec du JavaScript dedans, le script est envoyé au navigateur qui traduit le code et le renvoie à la différence d'un code PHP qui est interprété par le serveur.

de nos jours tous les navigateurs le JavaScript,

Le fait que le script ce situe dans une page HTML signifie que vos scripts peuvent être vus et copiés par celui qui consulte votre page.Néanmoins, pensez que vous même pouvez recopier du code afin de le comprendre et l'utiliser.

Le JavaScript peut être employé dans d'autres contextes que celui du navigateur web. Netscape a crée le JavaScript coté serveur comme le langage CGI qui peut faire les même choses que Perl et l'asp. Il n'y a donc rien qui vous empêche de créer des programmes complexes. Cependant, ce tutorial traite exclusivement de l'emploi du JavaScript dans des navigateurs.

JavaScript vs. Java

Le JavaScript n'est pas identique à Java. Je répète : Le JavaScript n'est pas identique à Java.

Bien que les noms soient très semblables, le Javascript est principalement un langage de script à utiliser dans des pages de HTML,alors que Java est un vrai langage de programmation qui fait des choses tout à fait différentes de JavaScript. En outre il est beaucoup plus difficile d'apprendre Java. Il a été développé par Sun pour l'usage de programmes nécessitant une certaine puissance de calcul.

Le JavaScript a été développé par Netscape pour le côté client (dans le navigateur) et pour les scripts côté serveur. À l'origine le langage s'appelait Live Script , mais alors qu' il était sur le point de devenir connue Java était devenu immensément populaire. Au dernier moment Netscape a changé le nom de son langage de Script en "JavaScript". Ceci a été fait purement pour des raisons commerciales.

Java comme JavaScript descendent du C et du C++, mais les langages (ou plutôt, leurs ancêtres) sont allées dans des directions complètement différentes. Vous pouvez les voir en tant que cousins lointains. Tous les deux sont orienté objet (bien que ce soit moins important pour le JavaScript que pour beaucoup d'autres langages) et ils partagent une syntaxe similaire, mais les différences entre eux sont plus importantes que les similitudes.

Le language JavaScript

Le JavaScript n'est pas un langage de programmation dans le sens strict. On le considère plutôt comme un langage de script parce qu'il emploie le navigateur pour effectuer le sale travail. Si vous demandez à une image d'être remplacés par une autre, le JavaScript indique au navigateur d'aller le faire. Puisque le navigateur effectue le travail à votre place, vous avez seulement à écrire quelques simples lignes de code. C'est ce qui fait du JavaScript un langage facile pour débuter.

Mais ne vous y trompez pas, le JavaScript peut être ce révéler aussi très difficile. Premièrement, en dépit de son aspect simple il est aussi un langage de programmation très complet. Il est donc possible d'écrire des programmes très complexes en JavaScript. C'est rarement nécessaire quand il s'agit de l'utiliser pour des pages web, mais c'est tout à fait possible. Ceci signifie qu'il y a quelques structures de programmation assez complexes que vous ne pourrez comprendre qu'après les avoir étudiés.

Deuxièmement, ca reste rare mais il y peut y avoir des différences de navigateurs.

Il est facile d’apprendre les bases du JavaScript, mais quand vous commencerez à écrire des scripts plus évolués vous serez vite confronté aux différences entre navigateurs (il y a de temps en temps des problèmes de syntaxe).

===Sécurité===Le JavaScript côté Client a été expressément développé pour l'usage dans un navigateur web en association avec des pages HTML. Ceci a certaines conséquences pour la sécurité.

Tout d'abord, notez soigneusement svp ce qui se produit quand un utilisateur visite un site Web contenant du JavaScript :
L'utilisateur demande une certaine page HTML sans savoir s'il elle contient du JavaScript. La page HTML est fournie au navigateur, ainsi que les scripts. Les scripts fonctionnent habituellement automatiquement lorsque la page ce charge. En général l’utilisateur ne peut rien faire pour stopper les scripts (bien, qu'il pourrait stopper le code JavaScript via les options de son navigateur, mais peu d'utilisateurs savent le faire).

Il est courant de voir un utilisateur lambda télécharger un programme aléatoire et lui permettre de s'exécuter sur sa machine. Par conséquent il devrait y avoir des règles strictes sur ce que ce programme peut faire et ne peut pas faire.

la securité

  • Le JavaScript ne peut pas écrire dans le système de fichiers de l'ordinateur
  • Le JavaScript ne peut exécuter aucun autre programme. Ce serait également inacceptable.
  • Le JavaScript ne peut établir aucune connection sur un ordinateur,à moins que ce soit pour télécharger une nouvelle page HTML ou pour envoyer du courrier. Ceci, aussi, créerait des risques inacceptables

Donc le JavaScript ne peut tout simplement pas faire de choses dangereuses. Malheureusement Microsoft a vu qu'il pouvait rajouter quelques commandes de fichier system, en combinaison avec sa technologie ActiveX. Ceci signifie que l'explorateur Windows est structurellement moins sûr que n'importe quel autre navigateur. Il a quelques protections de "built-in", mais les hackers trouvent encore régulièrement des faiblesses. Le premier virus JavaScript dont j'ai entendu parler fonctionne dans ce sens fort heureusement microsoft a decidé d'abandonner les activex.

Ainsi le JavaScript fonctionne seulement sur des pages en HTML ou des partie du navigateur. Vous ne pouvez pas influencer quelque chose qui n'en fasse pas partie. Mais même dans un navigateur il y a quelques zones non modifiables. Fondamentalement le JavaScript veut protéger l'intimité de l'utilisateur en rejetant certaines actions et en demandant la permission pour d'autres :

  • Vous ne pouvez pas lire l'historique d'un navigateur. Ainsi un webmaster malveillant ne peut pas écrire un script qui lui permette de découvrir où vous naviguez.
  • Vous ne pouvez rien faire dans les pages qui proviennent d'un autre serveur. Ainsi si votre bureau contient deux pages provenant de deux serveurs différents, elles ne peuvent pas communiquer entre elles. Donc un webmaster malveillant ne peut pas savoir quels sites vous avez ouvert dans d’autres fenêtres de navigation. Voir la page cassement de frame pour plus d'informations.
  • Vous ne pouvez pas mettre la valeur du champ d'un fichier en téléchargement
  • Si vous essayez de fermer une fenêtre de navigateur qui n'a pas été ouverte par JavaScript, l'utilisateur est alors invité à confirmer cette action.

Cependant, cette règle n'est pas mise en application dans tous les navigateurs et il est facile de la contourner sous l'explorer Windows.

  • Si vous essayez d'envoyer un formulaire à une adresse mail par JavaScript, l'utilisateur est invité à confirmer cette action.
  • Vous ne devriez pas pouvoir ouvrir une nouvelle fenêtre plus petite que 100x100 pixels et/ou la placer en dehors de la zone d'écran de votre ordinateur. Ainsi un webmaster malveillant ne peut pas utiliser ce type de fenêtre invisible.

Notez que l'explorer Windows (et peut-être d'autres navigateurs) permet ceci, contrairement aux règles de sécurité.

Ainsi le JavaScript est un langage de script utilisé pour influencer des éléments en HTML, comme des formes, des images, des couches, des paragraphes etc... ainsi que pour influencer quelques objets non–HTML comme la fenêtre du navigateur. Rien de plus, mais (d'une manière primordiale) rien de moins.

chaque nouvelle version de navigateur supporte plus de JavaScript et permet de plus en plus de changer vos pages HTML par des scripts. Ceci mène à bien plus d'incompatibilités.

Il est préférable de résoudre des problèmes de compatibilité au cas par cas. En fait, la plupart des pages sur ce tutorial ont été précisément écrites en raison des incompatibilités de navigateur. Mais je vous avertis : vous devez digérer énormément d'information. Par conséquent il est préférable pour résoudre un problème actuel de laisser seul le reste de l'information jusqu'à ce que vous ayez besoin d'elle.

===Versions de navigateur===Les différences entre les versions sont plus simples que celles entre les navigateurs. Je divise les navigateurs de Javascript en navigateurs de version 2, de version 3, de version 4 et de version 5. Ces numéros de version me sont propre et sont cité sur chaque page de ce tutorial. J'explique entièrement ce système sur ma page Introduction aux navigateurs.

Versions de JavaScript

version date de sortie correspondance ECMA-262 navigateurs
1 mars 1996 Netscape 2 et Explorer 3
1.1 aout 1996 Netscape 3
1.2 Juin 1997 Netscape 4 opera 3
1.3 octobre 1998 ECMA-262 1 et 2 Netscape 4 ie 4 opera 5
1.4 novembre 1998 utilisé seulement sur les serveurs Netscape et opera 6
1.5 novembre 2000 ECMA-262 3 Netscape 6 firefox 1 opera 7 chrome 1
1.6 Novembre 2005 firefox 1.5
1.7 Octobre 2006 firefox 2.0 chrome 28
1.8 Juin 2008 firefox 3
1.8.1 firefox 3.5
1.8.2 juin 2009 firefox 3.5
1.8.5 juillet 2010 ECMAScript 5 firefox 4 ie 9 opera 11.60

a partir de la version 1.3 javascript a été standardisé afin d'éviter de se retrouver avec plusieurs variantes de javascript on imagine les conséquences. Ecmacsript est l'organisme chargé de cette normalisation et a ses propres numéro de version

Un navigateur peut-il supporter mon script ?

Cependant, une distinction très importante doit être faite. Les modules principaux du JavaScript sont le noyau (Core) et le DOM (Document Object Model) . Les versions de JavaScript peuvent être très utiles lorsqu'il s'agit d'essayer de déterminer le support du noyau, mais elles sont inutiles pour le support du DOM, ou les caractéristiques des navigateurs.

Alors comment vais je savoir si un navigateur peut manipuler mes scripts ? La règle de base est : n'utilisez pas un détecteur de navigateur, utilisez un détecteur d'objet.

avec l'accentuation des norme en matiere de navigateurs que ce soit le javascript le dom et le css tous les navigateurs s'appliquent a respecté ces norme il arrive de trouver des différences mais elles sont très rares seul les navigateurs d'anciennes génération ie 8 et inférieur on des syntaxes différentes mais a partir de IE 9 microsoft a décide de s'aligne sur les norme ce qui n'était pas le cas surtout pour le DOM.

Correction du JavaScript

la console

tous les navigateurs modernes possèdent une console JavaScript pour voir les erreurs que vous faites il ne faut surtout pas s'en privé je dirait même que c'est un outil indispensable.

on peut aussi mettre des alert ou utiliser console.log pour par exemple contrôler si une valeur est exacte

Débutants

Si vous débutez en JavaScript, lisez dans un premier temps la page Détection d'objets C’est la page la plus importante de ce site car elle vous enseigne les règles de base du JavaScript : n’utilisez pas un détecteur de navigateur, utilisez un détecteur d’objets.

Une fois que vous aurez lu cette page, l’idéal est d’essayer le script mouseover. Le résultat est très populaire, et une fois que vous aurez étudié ce script, vous comprendrez mieux les bases du Noyau, du DOM niveau 0 et du traitement d’évènements (Event handling)..

Après cela, les bases seront acquises et je vous donnerai une introduction plus structure sur les différents modules de JavaScript.

Traduction de la page : http://www.quirksmode.org/js/intro.html

Ce document intitulé « Introduction au javascript » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous