我遇到问题,因为我将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");
我做错了什么? (谢谢!)
答案 0 :(得分:12)
这是正确的方法..
ScriptObject so = HtmlPage.Window.Eval("activity") as ScriptObject;
so.Invoke("hideMyDiv");