2009-07-06 2 views
0

У меня есть веб-сайт, выпущенный на платформе facebook, я использую C# .Net 2008, проблема в том, что я загружаю элементы массива из кода позади в javascript arary, и я загружаю элемент elelment используя следующий яваскрипта код:Загрузите код javascript после загрузки кода позади

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

проблему, что, когда я вызвать элемент из массива следующим образом:

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

элемент не установлен со значением Inspite массива в коде позади имеет значения, и я не знаю, почему значение элемента массива не задано ? и в некоторых случаях я обнаружил, что он загружен со значением, и все идет правильно, так что может быть проблемой в рендеринге, поэтому ценность кода позади не наблюдается на стороне клиента? или где проблема? , и когда я проследил приложение в IE, я обнаружил, что в строке состояния сообщается о ошибке javascript, затем удаляется и произносятся, и когда желтый желтый шрифт появляется в строке состояния, я щелкнул его и заметил, что сообщение говорит: объект ожидается.

Проблема в том, что в событии onload тега body я вызываю функцию в javascript, которая инициализирует массив javascript со значениями из массива, расположенного позади кода, и проблема в том, что в некоторых случаях функция не вводится, поскольку я отслеживаю это, поставив предупреждение в начале функции, и я обнаружил, что когда массив javascript не заполняется, код функции не вводится, поскольку предупреждение не отображается, поэтому я не знаю, как заставить DOM ввести это функция, которую я называю его в теге здесь пример кода: 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# код:

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

И код за массивом заполняется из данных, возвращенных из базы данных, и они заполнены. Я их проследил и каждый раз, и они заполнены, и я обнаружил, что проблема с javascript я не знаю, если это из-за facebook платформе или из моего кода, но я думаю, что это не из моего кода, как проблема, которую я вызываю в функции при загрузке тега, и функция не вводится, и это проблема, поэтому мне может помочь один из них

Надеюсь, что я найду решение, поскольку я получил депрессию

+1

Не унывайте, его единственный код и половина удовольствия от этой линии работы попадают туда независимо от того, насколько это расстраивает. В конце концов, награда за победу над сложной проблемой должна быть достаточно хорошей. –

+0

У меня депрессия, потому что мне потребовалось слишком много времени, и мне стало скучно и я не знаю решения, и эта проблема сломала всю мою работу и вызвала у меня много неприятностей, поэтому мне срочно нужна помощь. – Ahmy

ответ

3

Если функция IntializeArr() не вызывается, это скорее всего ошибка JavaScript на странице и, скорее всего, вызвана некоторыми недопустимыми символами javascript в массивах ListofT или ListofB.

Вы должны избегать каких-либо одиночных кавычек или символов новой строки.

Самый простой способ проверить - просто «просмотреть источник» в браузере после загрузки страницы. Посмотрите вниз на свой скрипт и найдите, какие значения были поставлены, и вы должны увидеть, были ли какие-либо ошибки.

0

Может быть, ListofWords [0] содержит апостроф?

+0

Нет, он не содержит никаких апострофов, но может быть и редко содержит двойную cotation ("), и я думаю, что это не причина, но я думаю, что это что-то связано с рендерингом или чем-то в javascript или на платформе facebook. – Ahmy

+0

Я не знаком с платформой Facebook, Я боюсь, что не могу вам помочь. Я бы посоветовал, если вообще возможно, уменьшить проблему до ее ядра и, если это вообще возможно, попытаться поделиться этим кодом. – Svend

+0

Я получаю доступ к БД и получаю данные в нагрузке страницу, а затем зацикливание возвращаемого DataTable и получение его записей в массиве, а затем в javascript я получил эти элементы массива, поскольку он является фиксированным массивом, поэтому я получил каждый элемент, как я описал в сообщении, а затем иногда я обнаружил, что переменная javascript получила элементы массива, а иногда не получается, может быть, это связано с тем, что доступ к БД? – Ahmy

0

Вы выводите создание массива JS на страницу внутри <script> тегов?

Вы должны испустить этот javascript, чтобы браузер мог его запустить - тогда ArList будет доступен на странице для другого javascript.

+0

да, я помещаю его в тег

Смежные вопросы