加载代码后加载javascript代码

时间:2009-07-06 12:21:29

标签: c# asp.net javascript

我在facebook平台发布了一个网站,我正在使用C#.Net 2008,问题是我在javascript arary中加载了代码背后的数组元素,我使用以下javascript代码加载elelment元素:< / p>

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

当我从数组中调用元素时,问题如下:

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

虽然后面的代码中的数组有值,但我不知道为什么没有设置数组元素的值,所以元素没有设置值?在某些情况下,我发现它加载了价值,一切正常,所以可能是渲染中的问题所以在客户端看不到代码的价值?或者问题出在哪里? 当我在IE中跟踪应用程序时,我发现状态栏报告了一个javascript错误,然后消失并说完了,当状态栏中出现黄色等待时我点击了它并注意到消息显示:对象预期。

现在的问题是在body标签的onload事件中我调用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平台还是从我的代码,但我认为它不是从我的代码作为问题,我在标签的onload中调用函数,并且没有输入函数,这是问题所以任何人都可以帮助我

希望我能找到解决方案,因为我感到沮丧

4 个答案:

答案 0 :(得分:3)

如果没有调用IntializeArr()函数,则很可能是页面中的javascript错误,很可能是由ListofT或ListofB数组中的一些无效javascript字符引起的。

你应该逃避任何单引号或换行符。

最简单的检查方法是在页面加载后只在浏览器中“查看源代码”。查看您的脚本并找到放置它的值,您应该看看是否有任何错误。

答案 1 :(得分:0)

也许ListofWords [0]包含撇号?

答案 2 :(得分:0)

您是否正在将JS数组创建输出到<script>标记内的页面?

你必须发出那个javascript以便浏览器可以运行它 - 然后ArList将在页面上提供给其他javascript。

答案 3 :(得分:0)

同意,需要更多代码示例。

通常我通过使用Sys.Application.add_init()或$(document).ready()来解决这个问题。但是还有其他可能的解决方案。使用AJAX请求获取阵列。或类似的东西:

function setInnerHtml() {
    if (typeof(ArList) != "undefined") {
        document.getElementById("WordDiv").innerHTML = ArList[0];
    } else {
        setTimeout("setInnerHtml()", 40);
    }
}