我正在尝试将一个字符串数组从Silverlight应用程序传递给Javascript函数。但是我似乎只得到数组的第一个元素,而不是整个数组。我用下面的简单代码复制了它:
Silverlight的:
string[] Names = new string[5];
Names[0] = "Test1";
Names[1] = "Test2";
Names[2] = "Test3";
Names[3] = "Test4";
Names[4] = "Test5";
HtmlPage.Window.Invoke("PopulateNames", Names);
使用Javascript:
function PopulateNames(names)
{
window.alert(names);
}
在这种情况下,我只看到带有上述代码的“Test1”,或者如果我用window.alert(names [0])替换window.alert(名称),则为“undefined”。
有谁知道我应该怎么做才能将所有元素都输出到Javascript函数?
答案 0 :(得分:3)
Invoke
method采用一系列参数
因此,您的五个字符串将作为五个字符串参数传递给函数。
您需要传递一个嵌套数组,如下所示:
HtmlPage.Window.Invoke("PopulateNames", new object[] { Names });
答案 1 :(得分:2)
javascript函数对象还有另一个属性。它的论点。您可以访问通过此arguments对象传递的完整对象数组。尝试调试你的脚本,你就会明白我说的话。如果访问函数的参数数组,如'funcation(myargs[])
',则myargs将引用传入数组中的第一个值。