Copiar
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>TITULO</title> </head> <body style="margin:0;padding:0; border:0; overflow: hidden;"> <script type="text/javascript" language="javascript" src="../GeoGebra5/web/web.nocache.js"></script> <article class="geogebraweb" data-param-width="450" data-param-height="390" data-param-showResetIcon="true" data-param-enableRightClick="true" data-param-enableLabelDrags="true" data-param-showMenuBar="false" data-param-showToolBar="true" data-param-CustomToolbar="0 | 1 | 16 | 6" data-param-showAlgebraInput="false" data-param-useBrowserForJS="true" data-param-language="es" data-param-ggbbase64="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"></article> <script type="text/javascript"> //BLOQUE 1 //Método que permite escuchar la comunicación entre las dos herramientas window.addEventListener("message", funcionQueManejaLosMensajes); //BLOQUE 2 //Función que maneja los mensajes escuchados function funcionQueManejaLosMensajes(evt) { //En la variable "nombre" se almacena el mensaje enviado por DescartesJS var data = evt.data; nombre = data.name; //Si el mensaje escuchado es "reset" pues... se resetea (Reinicia) if ((data.type === "set") && (data.name === "reset")) { dComando = data.value; document.ggbApplet.reset(); window.parent.postMessage({ type: "update" }, '*'); } else if (data.type === "update") {} //BLOQUE 3 //Si el mensaje escuchado es "npuntos", se ejecutan comandos que capturan los puntos o el polígono dibujado en GeoGebra, para luego enviarlos a DescartesJS a través del comando window.parent.postMessage if ((data.type === "set") && (data.name === "npuntos")) { //A las variables valor1, valor2, valor3, valor4,... se asignan los valores (xi, yi) de los puntos A, B, C y D valor1 = document.ggbApplet.getValueString('A'); valor2 = document.ggbApplet.getValueString('B'); valor3 = document.ggbApplet.getValueString('C'); valor4 = document.ggbApplet.getValueString('D'); valor5 = document.ggbApplet.getValueString('polígono1') || document.ggbApplet.getValueString('t1'); //Se envía un mensaje a DescartesJS con los valores anteriores. DescartesJS escucha y asigna estos valores a las variables puntoA, puntoB y puntoC window.parent.postMessage({ type: "set", name: "puntoA", value: valor1 }, '*'); window.parent.postMessage({ type: "set", name: "puntoB", value: valor2 }, '*'); window.parent.postMessage({ type: "set", name: "puntoC", value: valor3 }, '*'); window.parent.postMessage({ type: "set", name: "puntoD", value: valor4 }, '*'); window.parent.postMessage({ type: "set", name: "poli", value: valor5 }, '*'); //Mensaje obligado para ir actualizando la comunicación, pues es permanente window.parent.postMessage({ type: "update" }, '*'); } else if (data.type === "update") {} } //Un comodín necesario para que funcione la comunicación function ggbOnInit() { comando = 'f:Derivative[x,1]'; rComando = document.ggbApplet.evalCommandCAS(comando); } </script> </body> </html>