11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je tente de créer une variable globale en javascript mais ça ne passe pas sous Firefox :

var content = document.getElementById('content');

function maFonction() {
     content.innerHTML = '<p>test</p>';
}


Ca fonctionne sous IE mais pas sous FF...

Une idée ??

Merci d'avance !
Modérateur
Salut Boris... Comment va ? Smiley smile

As-tu essayé ceci ?


<div id="content"></div>

<script type="text/javascript"><!--

var content = document.getElementById('content');

function maFonction()
{
     content.innerHTML = '<p>test</p>';
}
maFonction();

//--></script>
et euh... pourquoi une variable globale ? parce que bon, c'est à éviter pour ne pas risquer d'interactions avec d'autres scripts... Smiley confus

Ceci serait équivalent et déjà mieux Smiley cligne


<div id="content"></div>

<script type="text/javascript"><!--

var Boris =
{
	content: document.getElementById('content'),

	Fonction: function ()
	{
		Boris.content.innerHTML = '<p>test</p>';
	}
};
Boris.Fonction();

//--></script>

Modifié par koala64 (09 Oct 2006 - 22:30)
Je pense qu'il doit s'agir d'un accès à un objet DOM qui n'existe pas encore au moment où tu l'appelles, je ne vois pas vraiment d'autre explication.
Effectivement, l'objet n'existe pas encore au moment de la création de la variable globale, cependant, la fonction n'est appelé qu'après chargement de la page (sur le onLoad de la balise <body>) donc ça m'étonne un peu. Je vais essayer de faire comme le dit Quentin et je vous tiens au courant.

Merci à vous tous pour votre aide précieuse (comme toujours).