从Silverlight 4.0应用程序调用JavaScript函数

时间:2010-05-13 00:35:27

标签: javascript silverlight-4.0

我正在尝试从Silverlight应用程序调用函数。这应该是一项非常简单的任务,但到目前为止,我没有得到我正在寻找的结果。

这是我的Silverlight代码:

    private void button2_Click(object sender, RoutedEventArgs e)
    {
        HtmlPage.Window.Invoke("SayHello", new string[] { "Salut!" });
    }

这是JavaScript代码:

   function SayHello(theid) {
        alert(eval(theid));
        var divStatusDiv = document.getElementById("divStatus");
        divStatusDiv.style.backgroundColor = "Red";
    }

警告信息始终显示“未定义”,但当我按“确定”时,该DIV的颜色会变为红色。

为什么我一直得到“未定义”?

3 个答案:

答案 0 :(得分:2)

您需要创建可以正确传递的json,而不是像这样传递数组。你可以简单地回归“Salut!”而不是新的字符串[] {“Salut!”或者你可以为你拥有的字符串数组创建json数组。

答案 1 :(得分:1)

我不熟悉Silverlight,但如果theid"Salut!"内的值为SayHello,那么你就不能eval,因为它是一串文字,而不是代码。您应该将行alert(eval(theid));更改为alert(theid);

答案 2 :(得分:0)

使用

alert(eval(theid.value));