J'ai un peu de code qui fonctionne bien s'il est ajouté à une balise de script sur une page. Je l'ai déplacé dans un fichier JS séparé (dans le même dossier que la page HTML) mais j'obtiens une erreur "Object expected" à chaque fois que j'essaie de l'appeler.'Objet attendu' en utilisant JS externe
C'est ma page HTML:
<!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>
<title>Untitled Page</title>
<script type="text/javascript" src="Jscript1.js" />
<script type="text/javascript">
function t()
{
nsTest.test();
}
function t2()
{
nsTest.test2();
}
</script>
</head>
<body>
<input type="button" value="test" onclick="t()" />
<input type="button" value="test2" onclick="t2()" />
</body>
</html>
et ceci est mon fichier JS:
var nsTest = function()
{
var test = function()
{
alert('nsTest.test');
}
var test2 = function()
{
alert('nsTest.test2');
}
return {
test: test,
test2: test2
}
}();
Je suis sûr que je manque quelque chose de vraiment simple et évident, mais je suis assez nouveau à JS et j'ai tourné en rond pendant quelques heures à ce stade. Est-ce que quelqu'un peut me faire savoir ce que je fais mal?
Merci,
David
Jscript1.js ne se charge probablement pas. Vérifiez l'onglet réseau firebug, ou essayez simplement de le charger à partir du même emplacement dans le navigateur. – itsadok
Si vous utilisez une fermeture comme celle-ci (ce n'est pas une classe), vous n'avez pas à le nommer. Il est inutile de nommer 'nsTest'. – Rudie
@Rudie: La fonction n'est pas nommée. La valeur de retour de la fonction est affectée à 'nsTest'. –