Page 1 sur 1

Petit code JS ne fonctionnant pas ds FF 1.5, mais dans IE 6

Publié : 15 févr. 2006, 22:06
par newsforums
Bonjour,

J'ai, par erreur, d'abord posé ma question dans le forum de FF. Je le poste donc dans le bon forum...
Voici un petit code JavaScript qui fonctionne bien sous IE 6 et dans le nav. interne de mon éditeur (PSPad), mais pas sous mon FF 1.5 : le clic sur le texte "Cliquez sur la page" ne donne rien.
Le problème vient de mon code ou des paramètres de mon FF ?
J'ai d'autres codes affichant des fenêtres d'alerte et qui fonctionnent très bien dans mon FF.

********** voici le code ***********
...
<script type="text/javascript">
function initialiser(idobjet) {
var objet = document.getElementById(idobjet);
objet.onmousedown = trouver;
document.onclick = trouver;
}
function trouver(event) {
var event = window.event;
if (event.type) {
alert('Vous avez fait un ' + event.type);
}
}
</script>
</head>
<body onload="initialiser('objet_1')">
<div id="objet_1">
<p>Cliquez sur la page</p>
</div>
...
********** voici le code ***********

Qu'en pensez-vous ?
On m'a parlé de evt au lieu d'event pour FF, comme norme standard...
Outre que ça ne fonctionne pas, j'ai sous les yeux le "CSS et JavaScript" d'Oreilly sous les yeux et il parle bien de l'objet Event dans l'implémentation normalisée du DOM (donc Netscape et Firefox)...
R.L.

Re: Petit code JS ne fonctionnant pas ds FF 1.5, mais dans I

Publié : 15 févr. 2006, 22:31
par arno.
newsforums a écrit : function trouver(event) {
var event = window.event;
tu passes à ta fonction ton paramètre event, puis aprés tu lui assignes une autre valeur (window.event).
Si je vire var event = window.event; ton script fonctionne sous Firefox. (faut encore voir au minimum sous IE si ça marche)

Publié : 15 févr. 2006, 22:44
par martin
essaie avec :

Code : Tout sélectionner

function trouver(event) {
  if (!event) event = window.event;

  if (event.type) {
  alert('Vous avez fait un ' + event.type); 
} 
ie ne passe l'événement en argument à ta fonction , les autres navigateurs si.

Résolu

Publié : 15 févr. 2006, 23:03
par Invité
Merci Arno, ça fonctionne sous FF. Plus sous IE.
Il est amusant :roll: de noter que le script vient d'un bouquin, qu'il n'est pas précisé qu'il ne fonctionne que pour IE et que mettre var event = window.event; est 'normalement' totalement anormal mais que IE en a besoin...
Martin, j'ai essayé sans succès la proposition.
Merci à tous les deux.
Petite question à 1 ct d'euro : comment indique-t-on "résolu" pour que ça apparaisse ? En attendant, je le mets dans le sujet.
R.L.

Publié : 15 févr. 2006, 23:23
par arno.
comment se fait-il que la méthode de Martin ne marche pas ?
Tu as un message d'erreur dans la console ?
Pour mettre résolu, c'est trop tard, il fallait être inscrit lorsque tu as posté ton premier message.

Re: Résolu

Publié : 16 févr. 2006, 08:57
par calimo
Anonymous a écrit : Il est amusant :roll: de noter que le script vient d'un bouquin, qu'il n'est pas précisé qu'il ne fonctionne que pour IE
C'est souvent le problème avec les bouquins. Ils ont forcément un temps de retard :?

Publié : 16 févr. 2006, 12:16
par martin
Arg, pardon, j'ai oublié une accolade en tapant...

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function initialiser(idobjet) {
  var objet = document.getElementById(idobjet);
  objet.onmousedown = trouver;
  document.onclick = trouver;
}
function trouver(event) {
  if (!event) event = window.event;

  if (event.type) {
    alert('Vous avez fait un ' + event.type);
  }
}
</script>
</head>
<body onload="initialiser('objet_1')">

<div id="objet_1">
  <p>Cliquez sur la page</p>
</div> 

</body>
</html>