2009-07-06 4 views
0

J'ai un site web publié sur la plate-forme facebook, j'utilise C# .Net 2008, le problème est que je charge un tableau éléments de code derrière javascript arary et je charge l'élément Elelment en utilisant le code JavaScript suivant:Charger le code javascript après le chargement du code derrière

ArList = new Array('<%=ListOfWords[0]%>','<%=ListOfWords[1]%>','<%=ListOfWords[2]%>','<%=ListOfWords[2]%>'); 

le problème que, lorsque i appelle un élément du tableau comme suit:

document.getElementById("WordDiv").innerHTML = ArList [0]; 

l'élément est réglé pas à la valeur malgré la matrice dans le code a derrière valeurs et je ne sais pas pourquoi la valeur de l'élément de tableau est pas encore défini ? et dans certains cas, je l'ai trouvé chargé de valeur et tout va bien donc peut-être c'est un problème dans le rendu de sorte que la valeur du code derrière ne soit pas vu du côté client? ou d'où vient le problème? et quand j'ai tracé l'application dans IE j'ai trouvé la barre d'état signaler une erreur javascript puis a disparu et dire fait et quand l'allert jaune apparaît dans la barre d'état je l'ai cliqué et remarqué le message dit: objet attendu. Le problème maintenant est que dans l'événement onload de la balise body j'appelle une fonction dans le javascript qui initialise le tableau javascript avec des valeurs du code derrière le tableau et le problème est que dans certains cas la fonction n'est pas entrée comme tracée en mettant une alerte au début de la fonction et j'ai trouvé que lorsque le tableau javascript n'est pas rempli le code de la fonction n'est pas entré car l'alerte n'est pas affichée donc je ne sais pas comment forcer le DOM à entrer dans cette fonction que je l'appelle dans la balise ici Extrait du code: code javascript:

<!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 runat="server">   
    </head> 
    <body onload="IntializeArr(); return false;"> 
    <form id="form1" runat="server" > 
    ..........Some Controls............... 
    </form> 
    <script type="text/javascript" language="javascript"> 
    var TList; 
    var BList; 
     function IntializeArr() 
    {  
     TList = new Array('<%=ListofT[0]%>','<%=ListofT[1]%>','<%=ListofT[2]%>','<%=ListofT[3]%>','<%=ListofT[4]%>','<%=ListofT[5]%>','<%=ListofT[6]%>','<%=ListofT[7]%>','<%=ListofT[8]%>','<%=ListofT[9]%>'); 
     BList = new Array('<%=ListOfB[0]%>','<%=ListOfB[1]%>','<%=ListOfB[2]%>','<%=ListOfB[3]%>','<%=ListOfB[4]%>','<%=ListOfB[5]%>','<%=ListOfB[6]%>','<%=ListOfB[7]%>','<%=ListOfB[8]%>','<%=ListOfB[9]%>');   
    } 
    </script> 
    </body> 
    </html> 

C# code:

public string[] ListOfB = new string[15]; 
public string[] ListofT = new string[15]; 

Et le code derrière tableau est rempli à partir des données renvoyées de la base de données et ils sont remplis je les ai tracés et chaque fois et ils sont remplis et j'ai trouvé que le problème de javascript je ne sais pas s'il est de facebook plate-forme ou de mon code mais je pense que ce n'est pas de mon code comme le problème que j'appelle une fonction dans l'onload de la balise et la fonction n'est pas entrée et c'est le problème si quelqu'un peut m'aider s'il vous plaît

Espérons que je vais trouver une solution que je suis déprimé

+1

Ne soyez pas dépressif, son seul code et la moitié du plaisir de cette ligne de travail sont là, peu importe à quel point cela devient frustrant. En fin de compte la récompense de vaincre un problème difficile devrait être assez bonne. –

+0

Je me suis déprimé parce que ça m'a pris trop de temps et je me suis ennuyé et je ne connais pas la solution et ce problème a brisé tout mon travail et m'a causé beaucoup de problèmes. J'ai donc besoin d'aide de façon urgente – Ahmy

Répondre

3

Si la fonction IntializeArr() n'est pas appelée, il s'agit vraisemblablement d'une erreur javascript dans la page, probablement causée par certains caractères javascript non valides dans les baies ListofT ou ListofB.

Vous devriez échapper les guillemets simples ou les retours à la ligne.

Le moyen le plus simple de vérifier est de simplement "afficher la source" dans le navigateur une fois la page chargée. Regardez vers le bas de votre script et trouvez quelles valeurs ont été mises et vous devriez voir s'il y a eu des erreurs.

0

Peut-être ListofWords [0] contient une apostrophe?

+0

Non ça ne contient pas d'apostrophe peut être et contient rarement double cotation (") et je pense que ce n'est pas la raison mais je pense que c'est quelque chose lié au rendu ou quelque chose en javascript ou en plate-forme facebook – Ahmy

+0

Je ne suis pas familier avec la plateforme Facebook J'ai peur que je ne puisse pas vous aider là-bas, je suggère, si possible, de réduire le problème à son noyau, et si possible, essayez de partager le code – Svend

+0

J'accède à DB et obtenir des données dans la charge de la page et ensuite en boucle le DataTable retourné et obtenir ses enregistrements dans un tableau et puis dans le javascript j'ai eu ces éléments du tableau car il est fixé tableau donc j'ai eu chaque élément comme je l'ai décrit dans le message, puis parfois j'ai trouvé la variable javascript a obtenu les éléments du tableau et parfois ne l'a pas peut-être cela parce que l'accès DB? – Ahmy

0

Générez-vous la création de la baie JS sur la page à l'intérieur des balises <script>?

Vous devez émettre ce javascript pour que le navigateur puisse l'exécuter - alors ArList sera disponible sur la page à un autre javascript.

+0

oui je le mets à l'intérieur

Questions connexes