ONLOAD IE vs FireFox

Eléphant du PHP | 172 Messages

28 mai 2005, 18:30

Salut à tous,

Dans la page HTML, j'ai:
<body onload="fonction($a)" ... 
et ça marche sous IE.

Mais pas sous FireFox.

Que dois-je faire pour que ce fichu renard comprenne qu'il doit exécuter la fonction lorsque l'on charge la page ?

Eléphant du PHP | 139 Messages

29 mai 2005, 02:31

Activer javascript :lol:

ou alors c'est ton code qui n'est pas interpreté comme il faut par firefox.

essaie un truc tout bête pour voir si ton firefox accepte,
un truc du genre :

Code : Tout sélectionner

<html> <head> <script> function fonction() { document.getElementById('test').value = 'ca marche ;-)'; } </script> </head> <body onload="fonction()"> <input type="text" id='test' /> </body> </html>

Mammouth du PHP | 1885 Messages

29 mai 2005, 02:56

<body onload="fonction($a)" ... 
Il ne faut pas confondre langage côté-client et langage côté-serveur.

PHP est exécuté sur le serveur et donc avant même que la page ne soit rendue. Javascript est exécuté chez le client.

Dans le cas présent, on dirait que tu tentes d'exécuter une fonction PHP lors du chargement de la page. À mon avis, tu as simplement à faire appel à la fonction sans la placer dans l'attribut onload.
<?php fonction($a); ?>
...
<body>
...
Ceci aura pour but d'exécuter ta fonction avant même le chargement de la page chez le client. Mais bon, il faudrait être plus clair sur ce que tu désires réellement faire afin que l'on puisse te guider sur la bonne voie.

;)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 172 Messages

29 mai 2005, 08:32

Bonjour et merci à vous deux de vos réponses.

Je vais être plus clair (enfin j'espère).

La fonction que je désire lancer suite à "onLoad" de la page html est une fonction JavaScript. Ce n'est pas du PHP.

Si dans la page HTML je mets:
...
</head>
<body onload="faitQuelquechose($a)" ...

Avec Internet Explorer, pas de problème, la fonction "faitQuelquechose($a)" est exécutée donc je suis :D

Par contre avec FireFox, la fonction n'est pas exécutée et je suis :cry:

En fait FireFox ne comprend pas ou n'essaye même pas de comprendre ceci:

<body onload="faitQuelquechose($a)" ...

Ma question est donc, comment lancer ma fonction suite à l'évenement "onload" de ma page lorsque cette page est exécutée sur FireFox ?

:wink:

Mammouth du PHP | 19672 Messages

29 mai 2005, 09:42

Il y a probablement une erreur quelque part dans ton JavaScript. Je viens de faire un test avec ceci:
<html>
<head>
<title>Test JavaScript</title>
</head>
<body onload="alert('Ça marche pourtant bien !');">
<p>Essai JavaScript</p>
</body>
</html>
Chez moi, ça marche avec Internet Explorer 6, FireFox 1.0.4 et Opera 7 (je n'ai pas essayé avec Mozilla ni Opera 6)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 172 Messages

29 mai 2005, 10:46

Chez moi, ça marche avec Internet Explorer 6, FireFox 1.0.4 et Opera 7 (je n'ai pas essayé avec Mozilla ni Opera 6)
:oops: Honteux et confus !

Merci Cyrano !

Je viens de refaire un test avec ma fonction, ça joue AUSSI sous FireFox.

Je ne comprends pas pourquoi lors de mes premiers essais ça ne fonctionnait pas :?: :?: :?:

Ma fonction, en fait, lit un cookie au moment du chargement de la page HTML.
Dans mes premiers essais, le cookie était bien lu sous Internet Explorer, mais PAS sous FireFox.

Mystère :roll:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

29 mai 2005, 10:48

Je viens de tester le code de test de Cyrano.

Code : Tout sélectionner

Firefox 1.0.4 ........................... OK Internet Explorer 6.0.2800 .............. OK Netscape browser 8.0.1 (mode Firefox) ... OK Netscape browser 8.0.1 (mode IE) ........ OK Opéra 7.54 .............................. OK