2010-06-30 3 views
2

Pourquoi cela ne fonctionne pas lorsque je déplace le code dans le premier bloc de script (sans l'étiquette de script lui-même) à un fichier javascript externe.méthode Javascript non définie

L'idée est d'appeler homead.load() à partir de la page d'accueil et charger tout traité par homead_build();

Erreur dit « homead pas défini » en utilisant la console d'erreur Firefox

<div id="box"> 
</div> 

<script type="text/javascript"> 
    var homead = { 
     box_id: "box", 
     width: "150px", 
     load: function(){ 
     homead.homead_build(); 
     }, 

     homead_build: function(){ 
      var div = document.createElement('div'); 
      div.style.width = homead.width; 
      div.style.height = '55px'; 
      div.style.border = 'solid 2px #000'; 
      var box = document.getElementById(homead.box_id); 
      box.appendChild(div); 
     } 
    }; 
</script> 

<script language="JavaScript" type="text/javascript"> 

    homead.load(); 
</script> 
+0

Vérifiez pour voir votre fichier javascript externe est en cours de chargement. Fiddler est un outil très pratique pour cela. – David

+0

À quoi ressemble votre fichier externe? (Je me rends compte qu'il est * * la plupart du temps comme le code cité ci-dessus, mais la plupart du temps * * est un concept délicat.) Qu'est-ce que votre 'script' tag pour charger ressembler? Parce que ce que vous décrivez ci-dessus devrait fonctionner. Par ailleurs: Notez qu'il est important que vous assurez-vous d'inclure le second bit * ci-dessous * votre 'élément box' sur la page ... –

Répondre

1

Assurez-vous d'inclure avant d'utiliser homead, et que le fichier a été chargé correctement. (par exemple .: dire alert ("im chargé ...") dans le fichier)

Votre code peut être simplifié BTW:

var homead = { 
    box_id: "box", 
    width: "150px", 
    load: function(){ 
     var div = document.createElement('div'); 
     div.style.width = homead.width; 
     div.style.height = '55px'; 
     div.style.border = 'solid 2px #000'; 
     var box = document.getElementById(homead.box_id); 
     box.appendChild(div); 
    } 
}; 
2

Peut-être vous y compris le fichier script externe après l'appel homead.load()? Assurez-vous qu'il est chargé avant qu'il ne soit utilisé:

<script language="JavaScript" type="text/javascript" src="external.js"></script> 
<script language="JavaScript" type="text/javascript"> 

    homead.load(); 
</script> 
0

oui son fine.You travail pourrait être de donner chemin src mal de fichier balise script.

je l'ai fait ci-dessous;

<script language="JavaScript" type="text/javascript" src="../../Scripts/test.js" ></script> 

ajouté le code

<div id="box"> 
</div> 


<script language="JavaScript" type="text/javascript"> 

    homead.load(); 
</script> 
Questions connexes