Rechercher : dans
Par :

Problème JavaScript onLoad

Dernière réponse le 28 déc 2008 à 17:04:44 Romantic liar, le 28 déc 2008 à 15:14:41 
 Signaler ce message aux modérateurs

Bonjour,

J'ai fait deux petites pages html qui sont différentes au niveau code mais dont le résultat est équivalent. Les voici :

Première

<html>
<head>
<script language="javascript">
function affiche()
{
 alert ('Hello');
}
</script>
<title>essai1</title>
</head>
<body onload="affiche();">
</body>
</html>



Deuxième

<html>
<head>
<script language="javascript">
function affiche()
{
 alert ('Hello');
}
</script>
<title>essai1</title>
</head>
 <body>
<input type="text" onClick="affiche();">
</body>
</html>


Sur le local, la première page affiche un message lorsque la page est chargée et la deuxième l'affiche après clic sur le champs texte; alorsqu'en les hébergeant, seule la deuxième fonctionne normalement, il parait que l'hebergeur ne supporte pas la fonction onLoad , je trouve pas son équivalent ni comment remédier au problème.

J'ai besoin de faire fonctionner la première méthode, je vise à faire un compteur qui se déclenche avec le chargement de la page.
Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « Problème JavaScript onLoad » dans :
Javascript - Les fonctions Voir La notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
Javascript - Modifier la hauteur (height) d'un élément HTML VoirPour modifier la hauteur d'un élément HTML en javascript, il suffit d'utiliser sa propriété de style "height". Pour cela vous pouvez y faire référence de la manière suivante : Si vous souhaitez connaître la hauteur (height) d'un bloc HTML, il...
Javascript - Librairies d'effets pour vos images VoirAu gré de vos explorations du web, vous avez vu de superbes effets de présentation des images. Et ça vous plairaît bien de pouvoir proposer les mêmes à vos visiteurs. Voici quelques solutions en Javascript couplées à des CSS. Elles sont plus...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...

1

scriptiz, le 28 déc 2008 à 15:26:54
  • +2

Ce n'est pas à l'hébergeur de supporter le JavaScript ou non, c'est au navigateur du client qui visite ton site.

Maintenant ça ne m'étonnerais pas que les navigateurs, une fois que tu n'es plus en local, bloquent ce genre de scripts JavaScript souvent utilisés pour chargé des popups (onLoad).

Sinon si le onLoad ne marche pas, retire le OnLoad et appelle la fonction affiche() comme ceci dans ton <body> :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test JavaScript</title>
<script language="javascript" type="text/javascript">
function affiche()
{
	alert ('Hello');
}
</script>
</head>
<body onload="javascript: affiche();">
<script language="javascript" type="text/javascript">
affiche();
</script>
les amis.
</body>
</html>


N'oublie pas de supprimer le onload="javascript: affiche();" si tu utilise cette méthode sinon il se peut que ton alert() s'affiche deux fois si le onload marche chez d'autres (comme chez moi ;) ).

Répondre à scriptiz

2

Romantic liar, le 28 déc 2008 à 16:00:03

Que répondre ? D'abord merci car ce bout de code (ci dessous) marche aussi bien sur le local que sur le net :

<html>
<head>
<script language="javascript"> function affiche() { alert ('Hello');}</script>
<title>essai1</title>
</head>
<body>
<script language="javascript">affiche();</script>
</body>
</html>


Au fait, ça ne marche pas pour ma page, ce n'est qu'un exemple simplifié de ce que je comptais faire, ma fonction affiche() (dans mon vrai exemple) est définie dans un document function.js et puis je devrais l'appeler dans le index.php en mettant entre <head> et </head> ceci :
<script language="javascript" src="function.js"> </script>

et puis je l'appelle dans le body comme suit :
<body>
<script language="javascript">affiche();</script>
</body>
------------------------------
si j'appelle ma fonction affiche() avec le onLoad, ça ne marche qu'en local (comme d'hab) et si je fais le truc du champs avec le onClick, ça marche aussi.

Dans la fonction affiche() il s'agit de changer la valeur d'un champs texte d'un formulaire 'form1' défini sur la page index.php ; Je précise encore que tout marche bien en utilisant un bouton avec onClick
reste que mon objectif est d'éviter le déclenchement manuel de la fonction.

Répondre à Romantic liar

3

 scriptiz, le 28 déc 2008 à 17:04:44

Je ne comprends pas trop ce que tu veux mais voici un exemple de comment changer des valeurs de champs :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test JavaScript</title>
<script language="javascript" type="text/javascript">
function changeValeur(id, valeur)
{
	document.getElementById(id).value = valeur;
}

function getValeur(id)
{
	return document.getElementById(id).value;
}
</script>
</head>
<body onload="javascript: affiche();">
<form name="test" action="" method="post">
<label for="entree">Tapez votre texte ici </label>
  <input type="text" id="entree" name="entree" onkeyup="javascript:changeValeur('sortie', getValeur('entree'));" />
  <br />
  <label for="sortie">Ou alors ici</label>
  <input type="text" id="sortie" name="sortie" onkeyup="javascript:changeValeur('entree', getValeur('sortie'));" />
</form>
</body>
</html>


Après il ne te reste qu'a appeller la fonction affiche à la fin de ton body (après le formulaire) pour changer les champs que tu souhaite.

Répondre à scriptiz