我正在尝试从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的颜色会变为红色。
为什么我一直得到“未定义”?
答案 0 :(得分:2)
您需要创建可以正确传递的json,而不是像这样传递数组。你可以简单地回归“Salut!”而不是新的字符串[] {“Salut!”或者你可以为你拥有的字符串数组创建json数组。
答案 1 :(得分:1)
我不熟悉Silverlight,但如果theid
在"Salut!"
内的值为SayHello
,那么你就不能eval
,因为它是一串文字,而不是代码。您应该将行alert(eval(theid));
更改为alert(theid);
。
答案 2 :(得分:0)
使用
alert(eval(theid.value));