Référence:JavaScript

De GeoGebra Manual
Aller à : navigation, rechercher

Cette page vous explique comment vous pouvez interagir avec l'appliquette GeoGebra en utilisant JavaScript.

L'appliquette GeoGebra est considérée comme un objet JavaScript, dans cette page, nous supposons que l'objet est enregistré dans la variable nommée ggbApplet.

Ce qui est le cas si vous utilisez JavaScript depuis GeoGebra ou dans une page web contenant une seule appliquette GeoGebra exportée

  • soit directement depuis GeoGebra (Ctrl + Maj + M)
  • soit en utilisant le lien dans le dossier complet (hors ligne) fourni par GeoGebra.

Les scripts ne sont pas activables pour les appliquettes exportées depuis GeoGebra via la fonctionnalité Insérer.

Dans le cas où sont intégrées plusieurs appliquettes, consultez la section Obtenir Objet Appliquette .


Exemples

Exemple : le fragment de code HTML suivant ajoute un bouton "Réinitialiser" dans une page HTML, ce qui permet à l’utilisateur de ramener la construction affichée par GeoGebra dans son état initial :
<form>
<input type="button" value="Réinitialiser" onclick="ggbApplet.reset();">
</form>
Exemple : celui-ci ajoute deux boutons "Cacher A" et " Afficher A" pour changer l’état d’affichage de l’objet nommé “A" dans la construction
<form>
<input type="button" value="Cacher A" onclick="ggbApplet.setVisible('A', false);">
<input type="button" value="Afficher A" onclick="ggbApplet.setVisible('A', true);">
</form>
Exemple : Une fonction JavaScript "maConstruction()" est utilisée pour appeler plusieurs méthodes de l’appliquette GeoGebra.
Note : La langue est fixée à Français ("fr") avec le paramètre "language" dans la balise de l’appliquette afin de faire en sorte que la commande française "Droite" fonctionne.
<script type="text/javascript" language="javascript" src="http://www.geogebra.org/web/4.4/web/web.nocache.js"></script><article class="geogebraweb" data-param-width="500" data-param-height="500" data-param-ggbbase64="UEsDBBQACAgIAM1CWUMAAAAAAAAAAAAAAAAWAAAAZ2VvZ2VicmFfamF2YXNjcmlwdC5qc0srzUsuyczPU0hPT/LP88zLLNHQVKiuBQBQSwcI1je9uRkAAAAXAAAAUEsDBBQACAgIAM1CWUMAAAAAAAAAAAAAAAAMAAAAZ2VvZ2VicmEueG1svVZtb9s2EP6c/oqDPicxSVGyHMgp1gIFCmTdgHTDsG+URMtcZFEQKb8M/fE7kpIjpy/o0GFB7CN5D++5O96Rzl8fdw3sZW+UbtcRvSURyLbUlWrrdTTYzU0Wvb5/lddS17LoBWx0vxN2HXGHVNU62iSblBPGbgou0hu+yuKbjONXucrKpCJVma14BHA06q7VH8ROmk6U8rHcyp140KWwnnhrbXe3WBwOh9uJ6lb39aKui9ujqSJAN1uzjsbBHZq72HSIPZwRQhd//PwQzN+o1ljRljICF8Kg7l9d5QfVVvoAB1XZ7TrKCIaxlareYkypmywcqMOEdLK0ai8Nbp1Nfcx210UeJlqnvwojaM7hRFCpvapkv47ILUsi0L2SrR21dGRZTPvzvZKHYMiNPAcmzWrdFMLZgE+fgBFG4NoJGgRDkaZBRcIaiYNgQfAgkoDhYTsPUB4wPGB4HMFeGVU0Eo9UNAZzptpNj+d1nht7aqT3Z1x4jpdeY0xG/Y3g2CUxJBnXCbl2H8zsNZ+yOwuSzlhtP/xL0olymbHvp2Q/FGg8cbIvhcmSr4SZfoM0xP09cdJkxolU/t9/PmOMvxXmS8Yw/zHClP8vIeaLqVXysTvAbB12rB4rd8b1S7yCZOXKnkKCvZEuscoToCsUSwbYDUAT4AlOaQapk0uIl6jgEEMGDkdj8M2RZPjFl95YCgkac6tL7EmgSMQhiYH6nuKAnQS+L7FHWYyIJIEENzl6ypyJOAWe4izOgKOPriWXFIExbsQ50jOIKcRuM10CSyF19ih3rZ5mznU0ySAlkFJnELsaOzp0M+IziF006Zgu1XaDvUhRuaumodXd+SwQjffR8z0X7qeLa/Aqb0QhG3wZHt1JAuxF4zrCE210a2E6RBbW6l50W1WaR2kt7jLwl9iLB2Hl8R2izcTtsaVuza+9tm91M+xaA1Dqhpx91g2djdnZa5zEMwWfK5KZIp2Nl1/k1aiBwUjk172Z4KKq3jvE89WAmfylbU5veimeOq0uw8gX/pHJ5VA2qlKi/R2L1bG4vMD05vjranpzOKOTI7qvHk8GKxiOf8pe4x1Dk1sy/8Pb5xRU8UsVHrgphWu+hFxqsLdOX1PxwC335yMSR3mOvu5VNR+/N290U51z4cN/Kzo79P7XAnrXu6B+autG+hLxjY1PcflU6ONjqI042Pp46nBGAn9R+7QDXg0swdeyHmURpMc4x84o4jHEI8hUbKo66+mKeYSXRZAehdUbXBsDpVOUlEw0yvgLjUQXbeNL3z3sQ6vswzSxqnx6jtThPwy7Qp4L6NIk/Y9M5osXBZY/yb6VzVjPeJCDHkxoz1mpV7JUO5wGxZgQ4Q7rN3QgrFay7uXkd+N/h4V0eS2Zl+pny97Uu17v3rf7j1gJLxzIF5OXuSl71bl6gwLfgCf5XFOVMgKfkGq+zzUghl66pwLTY11qsDUHu9W9/6mFNwpKxzCH+nYcf0ve/wNQSwcI2ajKq1gEAADoCgAAUEsBAhQAFAAICAgAzUJZQ9Y3vbkZAAAAFwAAABYAAAAAAAAAAAAAAAAAAAAAAGdlb2dlYnJhX2phdmFzY3JpcHQuanNQSwECFAAUAAgICADNQllD2ajKq1gEAADoCgAADAAAAAAAAAAAAAAAAABdAAAAZ2VvZ2VicmEueG1sUEsFBgAAAAACAAIAfgAAAO8EAAAAAA=="></article>
<script type="text/javascript">
function maConstruction(){
var applet = document.ggbApplet;
applet.evalCommand("A = (1,1)");
applet.evalCommand("B = (3,2)");
applet.evalCommand("s = Droite[A, B]");
}
</script>
<form>
<input type="button" value="Faire la construction" onclick="maConstruction();">
</form>
Exemple : Explorez le code source de l'exemple suivant qui utilise JavaScript.
http://www.geogebra.org/source/program/applet/geogebra_applet_javascript_test.htm
Exemple : Ceci est un exemple de fichier qui utilise un add listener pour savoir si une construction particulière a été complétée (et alors envoie le message "Well done").
http://www.geogebra.org/en/examples/javascriptAutomaticCheckingExercise.html
Exemple : Ceci est un exemple montrant comment coupler JavaScript avec GeoGebraWeb.
http://www.geogebra.org/web/milestones/SlopeTestWeb.html

Méthodes utilisables

Méthode Description
evalCommand(commande) Évalue la chaîne comme si vous l’aviez entrée dans le champ de saisie [ex : evalCommand('s = Droite[A, B]')].
Vous pouvez utiliser plusieurs commandes en les séparant par "\n"
Note : Utilisez le paramètre “language” pour vous assurer que la commande dans votre langue est reconnue.
Note : Mais vous devriez utiliser les noms anglais des commandes pour vous assurer que la commande fonctionne dans toutes les versions de GeoGebra.
setUndoPoint() Définit un point de restauration. Utile si vous désirez que l'utilisateur puisse annuler l'action d'un evalCommand, par exemple si vous avez créé un bouton dans l'HTML pour agir comme un outil personnalisé.

Définir l’état d’un objet

Méthodes générales

Méthode Description
deleteObject(nom) Efface l’objet cité.
Exemple : deleteObject('A')
setValue(nom, valeur) Affecte la valeur à l’objet cité
Exemple : setValue('n',36)
Note : Si cet objet n’est pas un nombre, rien ne se passe.
Si l’objet est un booléen, utiliser la valeur 1 pour le mettre à ‘Vrai’, n’importe quelle valeur pour le mettre à ‘Faux’.
setCoords(nom, x, y) Affecte les coordonnées à l’objet
Exemple : setCoords('A',-1,3)
Note : Si cet objet n’est ni point ni vecteur, rien ne se passe.
setColor(nom, rouge, vert, bleu) Affecte la couleur RVB à l’objet
Exemple : setColor('A',200,100,100)
setVisible(nom, booléen) Affiche (true) ou Cache (false) l’objet cité dans la vue Graphique
Exemple : setVisible('A',true)
setLabelVisible(nom, booléen) Affiche (true) ou Cache (false) l’étiquette de l’objet cité dans la vue Graphique
Exemple : setLabelVisible('A',false)
setLabelStyle(nom, entier) Définit le style de l’étiquette de l’objet cité dans Graphique. Nom = 0, Nom & Valeur = 1, Valeur = 2 et Légende=3.
Exemple : setLabelStyle('A',1)
setFixed(nom, booléen) Définit la liberté de l’objet cité
Exemple : setFixed('A',true)
Note : Les objets fixes ne peuvent être modifiés.
setTrace(nom, booléen) Active ou non la trace de l’objet cité
Exemple : setTrace('A',false)
renameObject(ancien nom, nouveau nom) Renomme l’objet ancien nom en l’objet nouveau nom
setLayer(nom,entier) Définit le calque de l’objet cité.
setLayerVisible(n°, booléen) Affiche ou cache tous les objets du calque n°
setLineStyle(nom,entier) Définit le style du trait (de 0 à 4)
setLineThickness(nom,entier) Définit l’épaisseur de l’objet (de 1 à 13) (1 par défaut)
setPointStyle(nom,entier) Définit le style du point (-1 par défaut, 0 disque, 1 cercle, 2 croix,3 plus, 4 diamant plein, 5 diamant vide, 6 triangle (nord), 7 triangle (sud), 8 triangle (est), 9 triangle (ouest))
Voir Commande_SoitStylePoint
setPointSize(nom,entier) Définit la taille du point (de 1 à 9)
setFilling(nom,nombre) Définit le remplissage de l’objet (de 0 à 1)
getPNGBase64(échelle, booléen transparent, DPI) Retourne Graphique1 sous forme d'une chaîne encodée en base64.
Exemple : var str = ggbApplet.getPNGBase64(1, true, 72);
writePNGtoFile(Nomfichier, échelle, booléen transparent, DPI) Exporte Graphique1 dans un fichier PNG. (ne fonctionne que pour les appliquettes signées)
Exemple : var success = ggbApplet.writePNGtoFile("c:\\test.png", 1, false, 300);
isIndependent(nom) teste si nom est indépendant
isMoveable(nom) teste si nom est déplaçable
getBase64() Enregistre la construction courante dans un fichier .ggb encodé en base64
String getBase64(callback function)
4.4(HTML5 only)
Gets the current construction as a base64-encoded .ggb file asynchronously, passes as parameter to the callback function when ready. The callback function should take one parameter (the base64 string).
setBase64(chaîne) Définit la construction courante à partir d'un fichier .ggb encodé en base64

Animation automatique

Méthode Description
setAnimating(nom, booléen) Définit si l’objet cité peut être animé. Cela ne lance pas l'animation, utilisez startAnimation() pour le faire.
setAnimationSpeed(nom, nombre) Définit la vitesse d’animation de l’objet cité.
startAnimation() Lance l’animation pour les objets pouvant être animés.
stopAnimation() Arrête l’animation en cours.
isAnimationRunning() Retourne un booléen précisant si une animation est en cours ou non.

Connaître l’état d’un objet

Méthode Description
getXcoord(nom) Retourne l’abscisse de l’objet cité.
Exemple : getXcoord('A')
Note : Retourne 0 si l’objet n’est ni un point ni un vecteur.
getYcoord(nom) Retourne l’ordonnée de l’objet cité.
Exemple : getYcoord('u')]
Note : Retourne 0 si l’objet n’est ni un point ni un vecteur.
getValue(nom) Retourne la valeur de l’objet cité ( longueur pour un segment, aire pour un polygone, etc.).
Exemple : getValue('poly1')]
Note : Retourne 0 s’il l’objet n’a pas de valeur associée.
Si l’objet est un booléen, retourne 1 pour ‘Vrai’, 0 pour ‘Faux’.
getColor(nom) Retourne la couleur de l’objet cité sous forme d’une chaîne hexadécimale.
Exemple : getColor('A') retourne "#FF0000" si A est rouge.
Note : la chaîne hexadécimale commence toujours par # et ne contient pas de lettres minuscules.
getVisible(nom,1|2) Retourne ‘true’ ou ‘false’ suivant que l’objet cité est affiché ou non dans la vue Graphique 1 ou 2. Retourne ‘false’ si l'objet n'existe pas.
getValueString(nom) Retourne la valeur de l’objet cité sous forme de chaîne.
getDefinitionString(nom) Retourne la définition (l’info bulle) de l’objet cité.
getCommandString(nom) Retourne la commande à saisir pour créer l’objet cité.
getObjectType(nom) Retourne le type de l’objet cité sous forme de chaîne (comme "point", "line", "circle", etc. en Anglais !).
exists(nom) Retourne un booléen attestant l’existence ou non de l’objet cité dans la construction.
isDefined(nom) Retourne un booléen attestant la validité actuelle ou non de l’objet .
getObjectNumber() Retourne le nombre d’objets dans la construction.
getObjectName(n) Retourne le nom du n-ème objet de la construction (attention, le compteur commence à 0).
getLayer(nom) Retourne le numéro du calque de l’objet cité.
getLineStyle(nom) Retourne le style du trait (de 0 à 4)
getLineThickness(nom) Retourne l’épaisseur de l’objet (de 1 à 13) (1 par défaut)
getPointStyle(nom) Retourne le style du point (-1 par défaut, 0 disque, 1 cercle, 2 croix,3 plus, 4 diamant plein, 5 diamant vide, 6 triangle (nord), 7 triangle (sud), 8 triangle (est), 9 triangle (ouest))
getPointSize(nom) Retourne la taille du point (de 1 à 9)
getFilling(nom) Retourne le remplissage de l’objet (de 0 à 1)

Construction / Interface Utilisateur

Méthode Description
setMode(code du mode) Définit le mode au code fourni
Exemple : setMode(0) pour mode Déplacer.
(voir Codes et paramètre “showToolBar” et  paramètre "customToolBar" )
openFile(URL) Ouvre le fichier dont l’URL est donnée sous forme absolue ou relative)[ex : openFile('fichier.ggb')].
reset() Réinitialise la construction.
refreshViews() Rafraîchit l’affichage.
Note : Cela efface toutes les traces dans la vue Graphique.
setOnTheFlyPointCreationActive(booléen)
Autorise (true) ou non (false) la création de points "à la volée".
Note : À utiliser si vous ne désirez pas que les outils créent des points.
hideCursorWhenDragging(booléen)
Affiche(true) ou non (false) le curseur de la souris quand on déplace un object.
setRepaintingActive(booléen)
Active (true) ou non (false) le recalcul de la figure.
Note : Cette méthode est surtout à utiliser quand vous utilisez plusieurs méthodes.
setErrorDialogsActive(boolean flag) Bascule pour l’affichage ou non du dialogue d’erreur.
Note : C'est très utile avec l'utilisation de evalCommand().
setCoordSystem(xmin, xmax,ymin,ymax) Définit la fenêtre graphique.
Exemple : setCoordSystem(-5,10,-1,20)
setAxesVisible(booléen, booléen) Affiche (true) ou Cache (true) indépendamment chacun des axes.
Exemple : setAxesVisible(true, false)
setGridVisible(booléen) Affiche (true) ou Cache (true) la grille.

Communication de GeoGebraApplet à JavaScript

Avec ces méthodes vous pouvez implémenter une communication de l’appliquette au JavaScript.

Quand vous utilisez une des méthodes suivantes, vous devez vous assurer que vous avez inséré l’option MAYSCRIPT à la fin de la ligne d’appel de l’appliquette.

Par exemple :

<applet name="ggbApplet" code="geogebra.GeoGebraApplet" codebase="." archive="geogebra.jar" width="500" height="250" MAYSCRIPT>.

L'option MAYSCRIPT n'est seulement nécessaire que pour la communication de GeoGebraApplet avec JavaScript ; ellen'est pas nécessaire à JavaScript pour accéder au méthodes de GeoGebraApplet.

Par exemple, ces méthodes peuvent être utilisées pour :

  • noter les actions de l'utilisateur (voir l'exemple java2javascript)
  • communiquer entre deux appliquettes GeoGebra (voir l'exemple java2java)
Méthode Description
registerAddListener(String JSFunctionName) Déclare une fonction JavaScript en tant que mouchard des ajouts dans l’appliquette de construction.

Dès qu’un nouvel objet est créé, la fonction JS est appelée avec comme argument le nouvel objet.

Exemple : Déclarez d’abord, une fonction JS d’écoute :

ggbApplet.registerAddListener("suiviAjout");

Dès qu’un objet "A" est créé, l’appliquette GeoGebra appelle la fonction suiviAjout("A")
unregisterAddListener(nom) Retire un mouchard d’ajouts déclaré auparavant, voir registerAddListener()
registerRemoveListener(fonctionJS) Déclare une fonction JavaScript en tant que mouchard des retraits dans l’appliquette de construction.

Dès qu’un objet est supprimé, la fonction fonctionJS est appelée avec comme argument le nom de l’objet effacé.

Note : Quand une construction est mise à zéro, le mouchard n’est pas appelé pour chacun des objets élémentaires, voir registerClearListener().
Exemple : Déclarez d’abord, une fonction JS d’écoute :

ggbApplet.registerRemoveListener("suiviRetrait");

Dès qu’un objet "A" est effacé, l’appliquette GeoGebra appelle la fonction suiviRetrait("A")
unregisterRemoveListener(nom) Retire un mouchard de retraits déclaré auparavant, voir registerRemoveListener()
registerUpdateListener(fonctionJS) Déclare une fonction JavaScript en tant que mouchard des modifications dans l’appliquette de construction. Dès qu’un objet quelconque est modifié, la fonction fonctionJSest appelée avec comme argument le nom de l’objet modifié.
Note : si vous voulez suivre les modifications d’un seul objet utilisez plutôt registerObjectUpdateListener().
Exemple : Déclarez d’abord, une fonction JS d’écoute :

ggbApplet.registerUpdateListener("suiviModifs");

Dès que l’objet "A" est modifié, l’appliquette GeoGebra appelle la fonction suiviModifs("A")
unregisterUpdateListener(nom) Retire un mouchard de modifications déclaré auparavant, voir registerUpdateListener()
registerObjectUpdateListener(nom, fonctionJS) Déclare une fonction JavaScript en tant que mouchard des modifications pour un simple objet dans l’appliquette de construction. Dès que l’objet suivi est modifié, la fonction fonctionJS est appelée avec comme argument le nom de l’objet modifié. Si l’objet avait auparavant une valeur par la fonction JS, l’ancienne valeur est actualisée.
Note : toutes les écoutes de modifications d’objets sont effacées quand l’objet associé est supprimé ou que la construction est remise à zéro, voir registerRemoveListener() et registerClearListener().
Exemple : Déclarez d’abord, une fonction JS d’écoute :

ggbApplet.registerObjectUpdateListener("A", "monsuiviA");

Dès que A est modifié, l’appliquette appelle la fonction monsuiviA("A")
Note : un mouchard de modifications d’un objet continue à fonctionner après que cet objet ait été renommé.
unregisterObjectUpdateListener(nom) Retire le mouchard de modifications de l’objet cité, voir registerObjectUpdateListener()
registerRenameListener(fonctionJS) Déclare une fonction JavaScript en tant que mouchard des changements de nom dans l’appliquette de construction. Dès qu’un objet est renommé, la fonction fonctionJS est appelée avec comme argument l’ancien nom de l’objet et le nouveau.
Exemple : Déclarez d’abord, une fonction JS d'écoute :

ggbApplet.registerRenameListener("monsuiviRenommer");

Dès qu’un objet "A" est renommé en "B", l’appliquette appelle la fonction monsuiviRenommer("A", "B")
unregisterRenameListener(nom) Retire le mouchard de changements de nom déclaré auparavant, voir registerRenameListener()
registerClearListener(fonctionJS) Déclare une fonction JavaScript en tant que mouchard des remises à zéro dans l’appliquette de construction. Dès que la construction est remise à zéro (i.e. tous les objets sont supprimés), la fonction fonctionJS est appelée sans argument.
Note : tous les mouchards de modifications ne sont plus déclarés quand une construction est remise à zéro. Voir registerUpdateListener() et registerRemoveListener().
Exemple : Déclarez d’abord, une fonction JS d'écoute :

ggbApplet.registerClearListener("suiviRAZ");

Quand la construction est remise à zéro , l’appliquette appelle la fonction suiviRAZ()
unregisterClearListener(fonctionJS) Retire le mouchard de remises à zéro déclaré auparavant, voir registerClearListener()

Format XML de GeoGebra

Avec ces méthodes vous pouvez définir tout objet dans une construction. (voir Références XML ).

Méthode Description
evalXML(chaînexml) Évalue la chaîne fournie et modifie la construction actuelle.
Note : la construction n’est pas effacée avant l’évaluation de la chaîne XML.
setXML(chaînexml) Évalue la chaîne fournie et modifie la construction actuelle.
Note : la construction est effacée avant l’évaluation de la chaîne XML. Cette méthode peut être utilisée pour charger des constructions.
getXML()
Retourne l’actuelle construction sous forme d’une chaîne dans le format XML de GeoGebra. Cette méthode peut être utilisée pour sauvegarder des constructions.

Exemple :

<form name="nonof"><input type="button" value="get" 
onclick="document.nonof.nonot.value=document.ggbApplet.getXML()";">
<textarea name="nonot" rows=8 cols=60> </textarea>
</form>


getXML(nom)
Retourne uniquement la chaîne de construction XML de l’objet cité., i.e. seulement le paragraphe <element>.
getAlgorithmXML(nom)

Retourne une chaîne vide pour un objet libre. Retourne la chaîne de construction XML de l’ascendant (et de tous ses descendants) de l’objet cité pour un objet dépendant

Divers

Méthode Description
evalMathPiper(chaîne) Passe la chaîne à MathPiper et retourne le résultat sous forme de chaîne.

Supprimée en 4.0 et sera remplacée par evalGeoGebraCAS() dans la 4.2

getIPAddress() Retourne l'addresse IP de l'ordinateur sous forme de chaîne, par ex. "192.168.0.4"
getHostname() Retourne le nom d'hôte de l'ordinateur sous forme de chaîne.
debug(chaîne) Écrit la chaîne dans la Console Java

Obtenir Objet Appliquette

Dans les situations basiques l'appliquette est dans la variable globale ggbApplet . Les exceptions sont :

  • plusieurs appliquettes dans une page, par défaut, une seule est accessible pour JavaScript. Pour accéder à plusieurs appliquettes, vous devez définir le paramètre "id" pour chaque appliquette, il deviendra le nom de la variable globale représentant l'appliquette ;
  • export depuis GeoGebra 4.0 et antérieurs : l'appliquette est accessible en tant que document.applets[0], les autres appliquette de la même page le sont par document.applets[1], ...

--Noel Lambert (discussion) 23 janvier 2014 à 16:34 (CET)

en:Reference:JavaScript es:Referencia:JavaScript it:Riferimenti:JavaScript

© 2024 International GeoGebra Institute