如何在命名空间中调用Silverlight调用Javascript函数?

时间:2009-08-12 19:55:26

标签: javascript silverlight

我遇到问题,因为我将javascript函数包装在命名空间中。 我的代码的第1版工作正常。最初,要从Silverlight内部调用javascript,我以前使用此代码:

HtmlPage.Window.Invoke("hideMyDiv");

我的javascript看起来像这样:

function hideMyDiv() {
$('#MyDiv').fadeOut();

}

现在,我已经重构了我的javascript以包含在命名空间中。所以它现在看起来像这样:

var activity = {
message: null,
hideMyDiv: function() {
    $('#MyDiv').fadeOut();
}   };

我可以在javascript中调用这个重构函数,它像以前一样工作:

$("document").ready(function() {
activity.hideMyDiv();   });

但是当我尝试从Silverlight使用它时,我收到此错误:无法调用:activity.updateInfo。这是我目前的Silverlight代码:

HtmlPage.Window.Invoke("activity.hideMyDiv");

我做错了什么? (谢谢!)

1 个答案:

答案 0 :(得分:12)

这是正确的方法..

ScriptObject so = HtmlPage.Window.Eval("activity") as ScriptObject;
so.Invoke("hideMyDiv");