代码之家  ›  专栏  ›  技术社区  ›  dlanod

为什么只从Silverlight传递Javascript数组中的第一个元素?

  •  2
  • dlanod  · 技术社区  · 14 年前

    我正试图将一个字符串数组从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);
    }
    

    有人知道我应该怎么做才能把所有元素都放到Javascript函数中吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   SLaks    14 年前

    这个 Invoke method 获取参数数组。

    需要传递嵌套数组,如下所示:

    HtmlPage.Window.Invoke("PopulateNames", new object[] { Names });
    
        2
  •  2
  •   Joseph Quinsey Taseen    12 年前

    javascript函数对象还有一个属性。它的论点。您可以访问通过此arguments对象传递的完整对象数组。试着调试你的脚本,你就会明白我说的话。如果您访问函数的参数数组,如' funcation(myargs[]) ,myargs将引用传入数组中的第一个值。