Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1205 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [JS][RESOLU] e not defined sur Mozilla

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS][RESOLU] e not defined sur Mozilla

n°2319365
HaiDZ
On en a gros !
Posté le 21-08-2018 à 16:20:15  profilanswer
 

Hello,
 
Alors pour faire cours, j'ai créé un canevas pour faire des dessins dedans (en vrai c'est pour des signatures)
 
Bien-sur ça marche sur Chrome etc, mais pas sur Mozilla, problème connu avec le "event" qui ne fonctionne pas exactement pareil apparemment.
 
Le seul passage qui bloque encore, et là je ne pige pas pourquoi, c'est ça :
 

Code :
  1. function getTouchPos(e) {
  2.         if (!e)
  3.             var e = window.event || e;
  4.         //C'est ici que ça coince avec le "e not defined", sauf que, logiquement, mon petit "if" au dessus devrait éviter ce problème ! Je sèche là :/
  5.         if(e.touches) {
  6.             if (e.touches.length == 1) { // Only deal with one finger
  7.                 var touch = e.touches[0]; // Get the information for finger #1
  8.                 touchX=touch.pageX-touch.target.offsetLeft;
  9.                 touchY=touch.pageY-touch.target.offsetTop;
  10.             }
  11.         }
  12.     }


 
Je suis persuader que la réponse est très simple, mais je ne vois pas, je dois etre tellement buter dedans que je ne m'en rend pas compte ..
 
Merci à vous :jap:


Message édité par HaiDZ le 21-08-2018 à 17:49:49
mood
Publicité
Posté le 21-08-2018 à 16:20:15  profilanswer
 

n°2319366
antac
..
Posté le 21-08-2018 à 16:30:13  profilanswer
 

et ton window.event ?  
 
Il me semble que la compatibilité n'est pas assurée avec FF sur cette propriété de window.

Message cité 1 fois
Message édité par antac le 21-08-2018 à 16:30:55
n°2319368
HaiDZ
On en a gros !
Posté le 21-08-2018 à 16:35:41  profilanswer
 

antac a écrit :

et ton window.event ?  
 
Il me semble que la compatibilité n'est pas assurée avec FF sur cette propriété de window.


 
Tu veux dire, remplacer le "e" directement par "window.event" ?  
 
Je ne pense pas avoir compris  :sweat:
 
Edit : Il y a effectivement un problème de compatibilité mais, j'ai vraiment du mal à comprendre comment le rendre générique à tout navigateur malgré les exemples trouvés sur internet.
 
Ce que je ne comprends pas c'est que, si le "e" n'est pas valeurisé, il rentre dans le if, et donc il devrait être valeurisé (d'une erreur à la limite)
 
Hors là, il me dit que ce n'est pas défini, c'est ça qui me dépasse


Message édité par HaiDZ le 21-08-2018 à 16:38:14
n°2319369
antac
..
Posté le 21-08-2018 à 16:39:31  profilanswer
 

Non mais à coup sur "window.event" n'est pas défini ici.
Du coup quand tu fais : var e = window.event || e; ça donne var e = undefined || undefined ce qui donne de facto "undefined" (d'ailleurs aucun intérêt de retenter une affectation de e, tu l'as exclu dans ton test).

n°2319372
HaiDZ
On en a gros !
Posté le 21-08-2018 à 16:42:05  profilanswer
 

antac a écrit :

(d'ailleurs aucun intérêt de retenter une affectation de e, tu l'as exclu dans ton test).


 
Exact, j'ai juste copier cette partie d'un bloc au dessus et je n'ai même pas fait gaffe à ça, mais ça ne devrait pas causer de soucis.
 
Je pense que tu as raison, je pas chercher à voir si l'event existait tout simplement !
 
Merci d'avoir éclairé le sujet !
 
J'update une fois que j'ai des nouvelles :)


Message édité par HaiDZ le 21-08-2018 à 16:42:31
n°2319373
antac
..
Posté le 21-08-2018 à 16:42:35  profilanswer
 

Essai ça pour récupérer la touche choisie :

Code :
  1. function getTouch(e){
  2.     var keynum;
  3.     if(window.event) { // IE                     
  4.       keynum = e.keyCode;
  5.     } else if(e.which){ // Netscape/Firefox/Opera                   
  6.       keynum = e.which;
  7.     }
  8.   }


 

n°2319377
HaiDZ
On en a gros !
Posté le 21-08-2018 à 17:04:22  profilanswer
 

Ce n'est pas une touche en sois, c'est l'event touch, déclenché par l'appuie sur un écran tactile (pour signer avec une tablette)

n°2319379
antac
..
Posté le 21-08-2018 à 17:08:11  profilanswer
 

Ah oups pardon :
tu as regardé là dessus : https://developer.mozilla.org/fr/do [...] uch_events ?

n°2319382
HaiDZ
On en a gros !
Posté le 21-08-2018 à 17:11:55  profilanswer
 

Yep, mais j'ai du mal à piger tout le truc. Je pense que le problème vient d'en amont de cette fonction.
 
Vu que j'appel la fonction via une autre fonction, l'event ne doit pas être visible, je vais essayer de le passer en param, afin de le récup dans la deuxième.
 
Si j'ai compris (ce que j'en doute) sur les navigateurs, event est une variable globale, sauf sur ff
 
Je vais test :/


Message édité par HaiDZ le 21-08-2018 à 17:12:46
n°2319387
HaiDZ
On en a gros !
Posté le 21-08-2018 à 17:49:09  profilanswer
 

Problème résolu, du coup c'était bien une histoire de privée publique (je crois xD)
 
En passant le "e" de l'event en param de la fonction parent, puis en le repassant en param dans la fonction où l'erreur apparaissait, tout semble être good, et sur tous les navigateurs ! :D
 
Merci d'avoir aiguillé la chose ! Je vais pouvoir dessiner des octets (en anglais) signer sur mon canvas  :jap:


Message édité par HaiDZ le 21-08-2018 à 17:49:29

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [JS][RESOLU] e not defined sur Mozilla

 

Sujets relatifs
[JS] formulaire de modification de données XML avec XPath[PHP / JS] Récupérer ligne txt
[JS]Traitement d'une variable pouvant être un tableau ou pas[Résolu] stopper une animation en HTML5/JS
[HTML/CSS][PHP][JS][SQL] Quelques bon livres ?[JS] Changement de Disable ne fonctionne pas
problème avec dialobox sur condition (JS)[HTML/PHP/JS] Afficher x pages en alternances sur timer
Mettre un id avec des handlebars avec Handlebars.JS 
Plus de sujets relatifs à : [JS][RESOLU] e not defined sur Mozilla


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR