Problème affichage avec onload sous IE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème affichage avec onload sous IE

par Eagle » 20 janv. 2007, 22:22

Je viens de tester le code que tu m'as envoyé et rien ne se passe... hormis au tout premier chargement, ensuite en cliquant sur un lien vers une autre page (théoriquement rechargement de la page), aucun alert() !

Par contre, en mettant "window.onload = maFoncction;" sans parenthèses et directement, je suis arrivé à avoir mes sous-menus pendant 2 clics...!!!???!!! :shock: et puis plus rien.

J'avoue que là, je ne comprends plus trop, voire plus rien !

par Ajoloca » 20 janv. 2007, 21:56

Re,
As-tu testé le bout de code que je t'ai mis ?

Si ce bout de code fonctionne, c'est vers ta fonction qu'il faudra se tourner.

par Eagle » 20 janv. 2007, 21:37

Re,

Oui, le X est une faute de frappe du post...

Alors en fait, j'ai un fichier PHP "header", dans lequel je déclare mes balises META, feuilles de style et fichiers javascript (dont celui-là...).
La ligne, je la place juste après le code mes fonctions :
Contenu du fichier JAVASCRIPT :

Code : Tout sélectionner

/** * Fonction qui va permettre d'afficher correctement le menu sous IE au survol de la souris. * * Inspiré de cet article : http://www.ibilab.net/webdev/articles/CSS/creer-menus-cascade-simple-4.htm * * @version Version 1.0 - 09/01/2007 * * @access public */ function hover(obj){ if(document.all){ UL = obj.getElementsByTagName('ul'); if(UL.length > 0){ sousMenu = UL[0].style; if(sousMenu.display == 'none' || sousMenu.display == ''){ sousMenu.display = 'block'; }else{ sousMenu.display = 'none'; } } } } /** * Fonction qui va permettre d'afficher correctement le menu sous IE au survol de la souris. * * Inspiré de cet article : http://www.ibilab.net/webdev/articles/CSS/creer-menus-cascade-simple-4.htm<br /> * Elle appelle en fait la fonction ci-avant afin d'éviter de rajouter du code javascript partout dans le HTML. <br /> * Il faut l'appeller au chargement de la page (onload=setHover();). * * @version Version 1.0 - 09/01/2007 * * @access public */ function setHover(){ LI = document.getElementsByTagName('li'); nLI = LI.length; for(i=0; i < nLI; i++){ LI[i].onmouseover = function(){ hover(this); } LI[i].onmouseout = function(){ hover(this); } } } /* Lancement de la fonction javascript au chargement de toutes les pages */ document.onload = setHover();
Ensuite, sur chacune de mes pages, j'inclus ce fichier PHP.
Mais visiblement.... ça ne veut pas.

par Ajoloca » 20 janv. 2007, 21:25

Re,

Je suppose que c'est une faute de frappe 'doxument.onload'.

Tu la places où cette ligne ?
EDIT :
Ce code fonctionne

Code : Tout sélectionner

<html><head><title></title> <script type="text/javascript"> function aaa(){ alert('OK'); } document.onload=aaa(); </script> </head> <body> <h3>pour essai de onload</h3> </body> </html>

par Eagle » 20 janv. 2007, 21:22

Bonsoir Ajoloca.

Je viens de tester ta solution et... ça ne fonctionne pas ! |*()
J'ai essayé avec et sans les parenthèses, window.onload ou doxument.onload et rien !

Si tu vois autre chose... je suis preneur... :-)

par Ajoloca » 20 janv. 2007, 21:17

Bonjour,
L'évènement 'onload' est un évènement du document et non de la fenêtre.
Ensuite il te manque les parenthèses pour indiquer que c'est une fonction.

Essaie

Code : Tout sélectionner

document.onload = maFonction();

Problème affichage avec onload sous IE

par Eagle » 20 janv. 2007, 21:12

Bonsoir à tous,

Je vous explique la chose...
J'ai un menu dynamique que je génère via PHP.
Pour être dans "ce qu'il faut faire aujourd'hui", j'ai choisi d'utiliser CSS et bien sûr javascript pour palier certains problèmes sous IE (notamment l'ouverture des sous'menus au survole de la souris).

La fonction en question doit être chargée au "onload" de chaque page.
Ne voulant pas la taper "en dur" sur chacune de mes pages, dans mon fichier javascript que j'inclus dans un "header.php", j'ai rajouté :

Code : Tout sélectionner

window.onload=maFonction;
Sous Firefox, tout fonctionne parfaitement, mais sous IE, cela ne fonctionne pas ! :evil: .

Voici un lien vers mon application en cours de développement. Pas aboutie du tout graphiquement mais ce n'est pas l'urgent pour le moment.
Pour se connecter et tester : test/test

Auriez-vous une idée ?

Merci d'avance de vos réponses.