SELFHTML/Aides à la navigation JavaScript/DOM Référence objet |
Fonctions indépendantes de l'objet | |
Généralités sur les fonctions indépendantes de l'objet |
|
Les fonctions indépendantes de l'objet sont, par opposition aux fonctions que vous définissez vous-mêmes, déjà prédéfinies en JavaScript. Ce qui veut dire que vous pouvez à tout moment appeler ces fonctions.
Il s'agit de commandes JavaScript déterminées, puissantes pour certaines, et qui n'entrent dans aucun des objets JavaScript échappant ainsi au sens d'orientation sur l'objet de JavaScript.
Décode une URI, qui a été codée avec encodeURI().
<html><head><title>Test</title> </head><body> <script type="text/javascript"> <!-- Adresse = "http://www.my.fr/cgi-bin/script.pl?Text=le texte transmis&Nom=Serge François"; document.write("<b>Adresse décodée:<\/b> " + Adresse + "<br>"); Adresse = encodeURI(Adresse); document.write("<b>Adresse codée:<\/b> " + Adresse + "<br>"); Adresse = decodeURI(Adresse); document.write("<b>Adresse décodée à nouveau:<\/b> " + Adresse + "<br>"); //--> </script> </body></html> |
L'exemple définit une adresse typique avec des paramètres à transmettre à un script. D'abord celui-ci écrit l'adresse telle quelle dans le document. Ensuite l'adresse est traitée avec encodeURI()
et sortie pour contrôle. Enfin et d'après le même schéma decodeURI()
est appliquée et l'adresse est sortie encore une fois.
Opera 5.12 n'interprète pas cette méthode.
Comme decodeURI(). Ne doit être toutefois appliquée qu'à des adresses ou des lignes d'adresses ayant été codées avec encodeURIComponent().
Crypte une URI de telle façon que tous les caractères spéciaux sont transformés en séquences de signes ASCII. Particulièrement important pour les appels de scripts CGI avec paramètres. Car HTML 4.0 réclame par exemple dans l'attribut href
pour les liens, des chaînes de caractères cryptées dans la mesure où les adresses contiennent des caractères spéciaux.
Code tout sauf les caractères suivants:
A
à Z
a
à z
- _ . ! ~ * ' ( )
, / ? : @ & = + $
Les caractères avec accents en français par exemple - ou avec Umlaut en allemand-, les caractères spéciaux ainsi que les espaces, les parenthèses accolades ou pointues etc... sont donc codés.
<html><head><title>Test</title> </head><body> <script type="text/javascript"> <!-- var Adresse = encodeURI("http://www.my.fr/cgi-bin/script.pl?Texte=le texte transmis&Nom=Serge François"); document.write("<a href=\"" + Adresse + "\">lien<\/a>"); //--> </script> </body></html> |
L'exemple appelle la fonction encodeURI()
et lui transmet une URI typique avec des paramètres. La valeur renvoyée par la fonction est sauvegardée dans la variable Adresse
. Enfin, un lien est écrit de façon dynamique dans le fichier, alors que l'adresse cryptée auparavant est insérée dans l'attribut href
.
Opera 5.12 n'interprète pas cette méthode.
Comme encodeURI(), à la différence près que les signes suivants sont également codés:
, / ? : @ & = + $
Transforme les caractères de commande (caractères de commande avec des codes ASCII de 0 à 31) dans leurs valeurs ASCII numériques et cela sous forme hexadécimale. Fait devancer chaque valeur du signe de séparation "%" et renvoie la chaîne de caractères ainsi créée. Pour les signes autres que les caractères de commande, escape()
renvoie les signes inchangés. Il s'agit donc d'une fonction qui enlève des valeurs les caractères de commande et des caractères spéciaux pour les traduire en chaîne de caractères.
<html><head><title>Test</title> </head><body> <script type="text/javascript"> <!-- var exemple = "\n\r\t"; document.write(escape(exemple)); //--> </script></body></html> |
L'exemple définit une variable exemple
, à laquelle sont affectés différents caractères de commande (voir à ce sujet la partie traitant des caractères de commande). Cette variable est transmise comme paramètre à la fonction escape()
. Le résultat est écrit dans le fichier pour le contrôle.
Cette fonction sera remplacée à l'avenir par encodeURI()!
Interprète un argument à transmettre et renvoie le résultat.
Si l'argument transmis peut être interprété comme une opération de calcul, l'opération est effectuée et son résultat est retourné. Cette méthode permet aussi des opérations de calcul complexes avec expressions entre parenthèses. Cette fonctionnalité est très pratique pour, avec une seule commande, faire calculer des opérations notées en tant que chaînes de caractères.
Si l'argument transmis peut être interprété en tant qu'objet ou propriété d'objet, l'objet ou la propriété d'objet est retournée. Ce qui est important quand une chaîne de caractères (par exemple le contenu d'un champ de formulaire ou le paramètre transmis à une fonction) doit être interprété en tant qu'objet.
Provoque un message d'erreur si l'expression transmise ne peut être interprétée.
<html><head><title>Test</title> </head><body> <form action=""> <input size="30" name="saisie"> <input type="button" value="Calculer" onClick="alert(eval(this.form.saisie.value))"> </form> </body></html> |
L'exemple contient un formulaire avec un champ de saisie et un bouton. Dans le champ de saisie, l'utilisateur peut entrer une opération, par exemple: 1+2+3+4+5+6+7+8+9
ou 12.78*5.13
. En cliquant sur le bouton, la valeur du formulaire est calculée avec eval()
et sortie dans une boite de dialogue.
Recherche si une valeur fait partie d'une plage de nombres que JavaScript peut traiter, donc si elle représente un nombre valide d'après JavaScript.
Renvoie true
si la valeur est un nombre valide, et false
, si ce n'est pas un nombre ou si le nombre se situe en dehors des plages de valeurs interprétées par JavaScript. Aussi bien les nombres entiers que les nombres avec décimales sont reconnus comme nombres valides. Pour les nombres avec décimales, le signe de séparation doit être le point.
<html><head><title>Test</title> <script type="text/javascript"> <!-- var nombre=Number.MAX_VALUE; if (!isFinite(nombre*2)) alert("Le nombre ne peut être traité."); //--> </script> </head><body> </body></html> |
L'exemple définit une variable nombre
à la quelle est affectée la valeur Number.MAX_VALUE, le plus grand nombre possible. Dans la requête qui suit, il est vérifié si le produit de ce nombre par 2 se situe dans la plage des nombres que JavaScript peut traiter. Si ce n'est pas le cas, un message adéquat est sorti.
Recherche si une valeur à transmettre est un nombre invalide (NaN = Not a Number).
Renvoie true
si la valeur n'est pas un nombre et false
, si c'en est un. Aussi bien les nombres entiers que les nombres avec décimales sont reconnus comme nombres valides. Pour les nombres avec décimales, le symbole décimal doit être un point.
<html><head><title>Test</title> <script type="text/javascript"> <!-- function verification(valeur) { if(isNaN(valeur) == true) { alert(valeur + " n'est pas un nombre!"); return false; } else return true; } //--> </script> </head><body> <form action=""> <input size="30" name="saisie"> <input type="button" value="Check" onClick="verification(this.form.saisie.value)"> </form> </body></html> |
L'exemple contient un formulaire avec un champ de saisie et un bouton. En cliquant sur le bouton, la fonction verification()
est appelée. La valeur du champ de saisie du formulaire est transmise comme paramètre. verification()
vérifie si la valeur transmise est un nombre. Pour ce faire, isNaN()
est appliqué à la valeur transmise. Si ce n'est pas un nombre, un message d'erreur est sorti.
Pour cette méthode, même les nombres situés en dehors des plages de nombres de JavaScript sont des nombres valides. Pour vérifier l'ordre de grandeur des nombres, vous devez utiliser la méthode isFinite().
Transforme la chaîne de caractères transmise en nombre et renvoie la valeur numérique de celle-ci. Quand le nombre peut être interprété comme nombre avec décimales, cela est pris en considération. Comme signe décimal, il n'y a cependant que le point qui est reconnu. Judicieux pour transformer les saisies de l'utilisateur en nombres, avec lesquels il est ensuite possible de calculer.
Retourne NaN
(Not a Number) si la chaîne de caractères commence par une lettre ne pouvant être interprétée comme partie d'un nombre.
Quand la chaîne de caractères contient des signes non valables après des chiffres, le nombre est interprété jusqu'au premier signe non valable et la partie interprétée est renvoyée.
<html><head><title>Test</title> </head><body> <script type="text/javascript"> <!-- var elements = new Array("18","18.1","18,9","abc","1a"); document.write("<h1>Application de <i>parseFloat()<\/i><\/h1>"); for(var i=0;i<elements.length;++i) document.write(elements[i] + " = <b> " + parseFloat(elements[i]) + "<\/b><br>"); //--> </script></body></html> |
L'exemple définit un Array avec différents éléments qui sont en partie des nombres entiers, en partie des nombres avec des décimales, et pour le reste pas de nombres du tout. Ensuite, tous les éléments du tableau sont écrits dans le fichier de façon dynamique avec la méthode write(). Ce faisant, la fonction parseFloat()
est appliquée à chaque élément du tableau.
Transforme la chaîne de caractères à transmettre en nombre entier et renvoie la valeur numérique de celle-ci comme résultat. Fonction judicieuse, par exemple pour transformer les saisies de l'utilisateur en nombres avec lesquels on peut ensuite calculer.
Retourne NaN
(Not a Number) si la chaîne de caractères commence par une lettre ne pouvant être interprétée comme partie d'un nombre.
Quand la chaîne de caractères contient des signes non valables après des chiffres, le nombre est interprété jusqu'au premier signe non valable et la partie interprétée est renvoyée. Ici aussi pour parseInt()
, la règle du point est valable.
<html><head><title>Test</title> </head><body> <script language="JavaScript" type="text/javascript"> <!-- var elements = new Array("18","18.1","18.9","abc","1a"); document.write("<h1>application de <i>parseInt()<\/i><\/h1>"); for(var i=0;i<elements.length;++i) document.write(elements[i] + " = <b> " + parseInt(elements[i]) + "<\/b><br>"); //--> </script></body></html> |
L'exemple définit un Array avec différents éléments qui sont en partie des nombres entiers, en partie des nombres avec des décimales, et pour le reste pas de nombres du tout. Ensuite, tous les éléments du tableau sont écrits dans une boucle for dans le fichier de façon dynamique avec la méthode write(). Ce faisant, la fonction parseInt()
est appliquée à chaque élément du tableau.
La méthode parseInt()
permet un deuxième paramètre facultatif radix. Ce paramètre contient la base du système numérique utilisé. L'appel de parseInt(string,radix)
recherche dans la chaîne qui représente un nombre d'un autre système numérique, le nombre décimal correspondant. La méthode parseInt()
peut donc en même temps être utilisée pour transformer des nombres d'autres systèmes numériques en nombres du système numérique décimal. Ainsi par exemple l'appel de parseInt("11111",2)
donne-t il le nombre 31. Le paramètre facultatif accepte des valeurs comprises entre 2 et 36. Avec la méthode toString() de l'objet Number vous pouvez convertir dans l'autre sens, des nombres du système décimal en chaînes de caractères de nombres d'autres systèmes numériques. Il est également possible pour le faire - contrairement à la méthode parseInt()
- de convertir des nombres avec décimales.
Tout particulièrement dans le domaine du calcul de la date des nombres commençant par un zéro sont souvent utilisés. Des tâches simples telles que alert(08*60)
donnent alors un résultat erroné ou même un message d'erreur. La clé du mystère en est que JavaScript interprète les nombre commençant par zéro comme des nombres du système octal, et non pas du système décimal. Avec une instruction telle que alert(parseInt("08",10)*60)
vous pouvez éviter ce problème et imposer que la valeur soit interprétée comme nombre décimal.
Convertit le contenu d'un objet en nombre et renvoie le nombre. Attend comme paramètre le contenu de l'objet. Si le paramètre transmis ne peut être interprété comme nombre, NaN
(Not a Number) est renvoyé.
Utilisable avant tout en relation avec l'objet Date.
<html><head><title>Test</title> </head><body> <script type="text/javascript"> <!-- var d = new Date ("March 15, 1998 08:27:00"); document.write(Number(d)); //--> </script></body></html> |
L'exemple définit un nouvel objet Date et l'initialise avec une valeur dans le format GMT. L'objet Date est sauvegardé dans la variable d
. Ensuite, cette variable est transmise à la fonction Number()
comme paramètre. La fonction Number()
y a le même effet que la méthode d.getTime()
, c'est à dire que le nombre de millièmes de secondes entre le 1/1/1970 et la date et l'heure sauvegardés dans d
est calculé. Dans l'exemple, le résultat est écrit dans le fichier pour le contrôle.
Convertit le contenu d'un objet en chaîne de caractères et renvoie la chaîne de caractères.
Utilisable avant tout en relation avec l'objet Date.
<html><head><title>Test</title> </head><body> <script type="text/javascript"> <!-- var d = new Date (); document.write(String(d)); //--> </script></body></html> |
L'exemple définit un nouvel objet Date avec l'heure et la date actuelles. L'objet Date est sauvegardé dans la variable d
. Ensuite, cette variable est transmise comme paramètre à la fonction String()
. La fonction en fait une chaîne de caractères qui représente l'heure et la date sauvegardées au format GMT. Dans l'exemple, le résultat est écrit dans le fichier pour le contrôle.
Transforme tous les signes de la chaîne à transmettre en caractères ASCII normaux et renvoie la chaîne de caractères ainsi créée. La chaîne de caractères à transmettre doit contenir pour chaque signe à transformer un signe pourcentage ("%") et la valeur hexadécimale du caractère dans la table de caractères ASCII.
<html><head><title>Test</title> </head><body> <script language="JavaScript" type="text/javascript"> <!-- var exemple = ""%53%65%72%67%65"; document.write(unescape(exemple)); //--> </script></body></html> |
L'exemple définit une variable nommée exemple
et lui affecte une chaîne de caractères. La chaîne de caractères est composée d'une série de signes codés en hexadécimal. Chaque signe est précédé d'un signe pourcentage, suivi de la valeur hexadécimale du caractère. Cette variable est transmise à la fonction unescape()
comme paramètre. Le résultat est inscrit pour le contrôle dans le fichier. Dans l'exemple, le mot "Serge" est créé.
Cette fonction sera remplacée à l'avenir par decodeURI()!
Changer simultanément deux frames | |
String | |
SELFHTML/Aides à la navigation JavaScript/DOM Référence objet |
© 2001 Stefan Münz / © 2003 Traduction Serge François, 13405@free.fr
selfhtml@fr.selfhtml.org