Se connecter / S'enregistrer
Votre question

Compatibilité javascript(propriété event) sous FireFox

Tags :
  • Firefox
  • Programmation
Dernière réponse : dans Programmation
7 Septembre 2006 19:54:29

Saluté tout lé monde !

J'ai un gros probleme de compatibilité. Le code suivant (qui est l'affichage d'une fenetre en suivant le pointeur de la souris).
ça marche sous IE, mais pas sous FireFox, snif snif ...


Voici mon code
ça c'est dans le head :

<style type="text/css">
.popper { POSITION: absolute; VISIBILITY: hidden; filter:alpha(opacity=90); }
</style>

et ça c'est dans mon body:

<DIV class="popper" id="topdeck">
<SCRIPT language="JavaScript">
var nava = (document.layers);
var iex = (document.all);
var skn = (nava) ? document.topdeck : topdeck.style;
if (nava) {document.captureEvents(Event.MOUSEMOVE)};
document.onmousemove = get_mouse;

function pop(msg)
{
skn.display = "block";
var content ="<TABLE WIDTH=220px height=100% BORDER=0px CELLPADDING=1px CELLSPACING=0px BGCOLOR=#000000><TR><TD><TABLE WIDTH=100% HEIGHT=100% BORDER=0px CELLPADDING=4px CELLSPACING=0px CLASS=fontzones><TR><TD valign=top style=padding-bottom=20; "+msg+"</TD></TR></TABLE></TD></TR></TABLE>";
if (nava)
{
skn.document.write(content);
skn.document.close();
skn.visibility = "visible";

}
else if (iex)
{
document.all("topdeck").innerHTML = content;
skn.visibility = "visible";
}
}
function get_mouse(e)
{
var x = event.x+document.body.scrollLeft;
var y = event.y+document.body.scrollTop;
skn.left = x;
skn.top = y;

}
function kill()
{
skn.visibility = "hidden";
skn.display = "block";
}
</SCRIPT>
</div>

Je sais que le probleme vient du fait que dans ma fonction get_mouse(e), j'ai
var x = event.x+document.body.scrollLeft;
var y = event.y+document.body.scrollTop;
et event n'est pas pris en charge par fire fox...


Y'a t-il un moyen de contourner ce problème ??
Merci d'avance !!!
:hello: 

Autres pages sur : compatibilite javascript propriete event firefox

a c 145 L Programmation
7 Septembre 2006 20:02:22

vite fait, ça doit pouvoir t'aider:
  1. function get_mouse(e) {
  2. var scrOfX = 0, scrOfY = 0;
  3. if (typeof(window.pageYOffset) == 'number' ) {
  4. //Netscape compliant
  5. scrOfY = window.pageYOffset;
  6. scrOfX = window.pageXOffset;
  7. } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
  8. //DOM compliant
  9. scrOfY = document.body.scrollTop;
  10. scrOfX = document.body.scrollLeft;
  11. } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
  12. //IE6 standards compliant mode
  13. scrOfY = document.documentElement.scrollTop;
  14. scrOfX = document.documentElement.scrollLeft;
  15. }
  16. skn.style.left = eventObj.clientX + scrOfX + 'px';
  17. skn.style.top = eventObj.clientY + scrOfY + 'px';
  18. }
7 Septembre 2006 20:22:13

merci pour ta reponse plus que rapide !!!
Je check ça tout de suite...
Merci !
Contenus similaires
7 Septembre 2006 20:28:24

Sniiiiiiiiiiiiiiiiiiiiiiiiiiiiiff !!!
ça morche po

kan j'ouvre la console javascript de google j'ai ce code d'erreur :

Avertissement : Élément référencé par son ID/NAME dans le contexte global. Utilisez la propriété standard du W3C document.getElementById() à la place.
Fichier source : http://localhost/ABC/index.php
Ligne : 33

Ma foué , je comprend pu ...
a c 232 L Programmation
a b È Firefox
7 Septembre 2006 20:30:06

Citation :
j'ai ce code d'erreur :

Avertissement :


T'appeles ça un message d'erreur toi ?
Si y'a marqué Avertissement, c'est que c'est pas une erreur !

Avec Firefox, il faut faire des getElementById, remplace les skn par document.getElementById('skn')
7 Septembre 2006 20:37:15

Et bien !
Je vois qui fo peser ces mot ici, l'erreur n'est pas permise, lool
Bon, ça ne corrige malheureusement pas mon problème,
Par contre ça m'en ajoute, vu qu'avec document.getElementById('skn')
ça ne marche plus sou ie ...
Soucis là ...
a c 232 L Programmation
a b È Firefox
7 Septembre 2006 20:38:26

j'ai jamais eu de soucis avec des document.getElementById() avec IE...

(Edit : en fait si je te disais ça a propos de l'avertissement, c'est qu'un avertissement n'empèche pas la bonne exécution d'un programme, alors qu'une erreur oui !)
7 Septembre 2006 21:00:16

pas de probleme...
Mais c cho que j'arrive pas a resoudre mon pbl...
Ya plein de code ki en parle, mais apparement ça colle pas avec mon cas ...
Ma foua ...
Si quelqu'un à une idée ...
a c 145 L Programmation
7 Septembre 2006 23:40:39

en fait, pourquoi tu ne travailles pas durectement sur:
skn = document.getElementById('topdeck') ?
parce que là, tu n'as pas d'élément avec l'id "skn"
3 Mars 2009 23:57:23

Bonjour

J'ai le même probleme de compatibilité que vous avec event sur Firefox....

avez vous trouver une solution à ce problème???

merci
a c 232 L Programmation
a b È Firefox
4 Mars 2009 03:56:12

Salut,

Firefox passe l'évènement en paramètre de la fonction.
Récupères l'évènement en ajoutant un paramètre à ta fonction, et tu pourras l'utiliser pour firefox.
Tu vérifies si event est null pour voir si c'est firefox ou ie, et tu fais en fonction.
4 Mars 2009 14:15:26

re,

merci Omar pour lavancé du schmilblick...


ok pour le principe de la fonction,cependant je reste débutant dans le domaine,et fébrile en gestion de fonction...


voici les deux lignes ki bugge avec firefox:

mymenu.top = document.body.scrollTop + event.clientY - event.offsetY;
mymenu.left = document.body.scrollLeft + event.clientX - event.offsetX + ParentMenuWidth;

qd je vire les event.client et event.offsett,par une valeur chiffrée,le script fonctionne,cependant le placement du menu est pas forcément a l'endroit voulu selon les résolutions graphiques des postes utilisateurs.

donc si je suis bien ta proposition:
faut ke je crée une fonction ki gere si c'est Firefox ou IE par la valeur de la fonction event.?puis mettre le code ki va pour chaque Navigateur?
pour IE,je l'ai mais pour Firefox,je me sens seul o monde :) 
c'est peut être abusé de ma part,mais ya til qqun, qui sache codé mes 2 lignes pour que ce soit interprété correctement sur Firefox?

merci d'avance.


a c 232 L Programmation
a b È Firefox
4 Mars 2009 16:32:01

Salut,

Ta fonction tu l'appelles sur un évènement, on est d'accord ? Genre sur le onload de ton body, ou je sais pas, oui ?
Avec Firefox, ces évènements prennent un paramètre, avec IE il ne me semble pas.

Du coup, tu as ta fonction qui ressemble à ça :
  1. function gestionEvenement() {
  2. mymenu.top = document.body.scrollTop + event.clientY - event.offsetY;
  3. mymenu.left = document.body.scrollLeft + event.clientX - event.offsetX + ParentMenuWidth;
  4. }


Avec Firefox, il te faudrait quelque chose comme ça :
  1. function gestionEvenement(e) {
  2. if(event != null) {
  3. mymenu.top = document.body.scrollTop + event.clientY - event.offsetY;
  4. mymenu.left = document.body.scrollLeft + event.clientX - event.offsetX + ParentMenuWidth;
  5. } else {
  6. mymenu.top = document.body.scrollTop + e.clientY - e.offsetY;
  7. mymenu.left = document.body.scrollLeft + e.clientX - e.offsetX + ParentMenuWidth;
  8. }
  9. }


Et ça devrait le faire il me semble
4 Mars 2009 23:01:58

salut OmaR,
j'étais parti dans ce sens là, ton code m'a fait gagné du temps,
ça y est ça passe sur Firefox ossi!
youpi tralala!
MERCI BEAUCOUP
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS