11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Le javascript de ma page été dans le head pour le developpement. Je commence à l'externaliser pour ne plus avoir du tout de javascript dans la page XHTML, ça sera plus propre Smiley smile comme ça.
J'ai mis mes 3 fonctions et une instruction à executer au chargement du document, dans un fichiers js. Pas de problème avec les fonctions, par contre l'instruction à éxecuter dès la fin du chargement du xhtml foire. J'avais
<body onload="document.getElementById('tit').focus();" >
, j'ai maintenant
document.getElementsByTagName('body')[0].onload = document.getElementById('tit').focus();
dans le .js .L'appel du fichier js est situé dans la section head du xhtml :
a écrit :
Erreur : document.getElementById("tit") has no properties
.
Normal, l'element xhtml 'tit' n'existe pas encore. Alors j'ajoute un 'defer=defer' pour que le javascript soit executé après création du xhtml mais l'erreur demeure car l'execution est différée mais la lecture du js se fait dès le départ.
<script type="text/javascript" src="edit.js" defer="defer"></script>
.
La solution que j'ai trouvé consité à mettre l'appel du js comme dernière ligne du xhtml, pas terrible Smiley decu non ? ... Y suis-je condamné ?

(je sens que quelque chose m'échappe .... Smiley rolleyes )
Modifié par ___seb (28 Jul 2005 - 19:59)
J'ai pas tout compris mais j'ai résolu le prob en cherchant dans les scripts que j'avais sous la souris :
window.onload = function()
{ 
document.getElementById('tit').focus();
}

avec l'appel au script placé dans le head.
du coup, le defer n'est même plus necessaire ... Smiley confused Smiley ohwell Smiley smile
Modifié par ___seb (28 Jul 2005 - 20:00)