2009-08-12 74 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

相關問題