2009-08-12 42 views
6

我遇到了问题,因为我在命名空间中包装了我的JavaScript函数。我的代码的版本1工作正常。原来,打电话的JavaScript从内的Silverlight我用这个代码:如何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"); 

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

回答

11

这是正确的方式..

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

感谢你,就像一个魅力。 – bperreault 2009-08-12 20:55:16

相关问题