2009-08-12 16 views
6

Mam problem, ponieważ zawinąłem funkcje javascript wewnątrz obszaru nazw. Wersja 1 mojego kodu działała dobrze. Początkowo, aby wywołać javascript z wewnątrz Silverlight Ja używałem tego kodu:Jak Silverlight wywołać funkcję JavaScript w przestrzeni nazw?

HtmlPage.Window.Invoke("hideMyDiv"); 

Moje javascript wyglądał tak:

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

}

Teraz mam refactored mojego javascript być zawarte w przestrzeni nazw. Tak to teraz wygląda następująco:

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

mogę nazwać to refactored funkcję w javascript, to działa jak przedtem:

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

Ale gdy próbuję go użyć od Silverlight, otrzymuję ten błąd: Nie można wywołać: activity.updateInfo. To jest mój obecny kod Silverlight:

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

Co robię źle? (I dzięki!)

Odpowiedz

11

Jest to poprawny sposób ..

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

Thank-ty, działa jak czar. – bperreault

Powiązane problemy