2009-08-12 2 views
6

네임 스페이스 내부에 자바 스크립트 함수를 래핑 한 이후로 문제가 발생했습니다. 버전 1의 코드가 정상적으로 작동했습니다.Silverlight하는 방법 네임 스페이스에서 Javascript 함수를 호출 하시겠습니까?

HtmlPage.Window.Invoke("hideMyDiv"); 

내 자바 스크립트는 다음과 같이 보았다 : 나는이 코드를 사용하는 데 사용되는 실버 라이트 내부에서 원래 자바 스크립트를 호출하는

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

} 이제

을, 나는에 내 자바 스크립트를 리팩토링했습니다 네임 스페이스에 포함되어야한다. 그래서 지금은 다음과 같습니다

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

내가 할 수있는, 그것은 이전처럼 작동 자바 스크립트에서이 리팩토링 함수를 호출 : 나는 실버 라이트에서 사용하려고 할 때, 나는이 오류 얻을

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

: 호출하지 못했습니다 : activity.updateInfo. 현재 사용중인 Silverlight 코드는 다음과 같습니다.

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

무엇이 잘못 되었나요? (감사!)

답변

11

이 올바른 방법입니다 ..

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

감사합니다 - 당신이 마법처럼 작동합니다. – bperreault

관련 문제