하늘높이의 프로그래밍 이야기

1. 자바스크립트(HTML)->실버라이트

[HTML 부분]

- 스크립트 부분

Code Snippet
  1. <script type="text/javascript" >
  2.     function SendSilverlightPlayer(msg) {
  3.         //실버라이트의 함수를 호출
  4.         var silverlightControl = document.getElementById("silverlightPlayer");
  5.         silverlightControl.Content.SilverlightApp.SendToSilverlight(msg);           
  6.     }      
  7. </script>

- Tag 부분(Object  선언 부분)

Code Snippet
  1. <object data="data:application/x-silverlight," type="application/x-silverlight-2" width="100%" height="100%" id="silverlightPlayer">
  2.             <param name="source" value="ClientBin/Test.xap"/>
  3.             <param name="onerror" value="onSilverlightError" />
  4.             <param name="background" value="white" />
  5.             <param name="minRuntimeVersion" value="3.0.40818.0" />
  6.             <param name="autoUpgrade" value="true" />
  7.             <param name="enableGPUAcceleration" value="true"/>
  8.  
  9.             <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration: none;">
  10.                  <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Microsoft Silverlight 가져오기" style="border-style: none"/>
  11.             </a>
  12.         </object>

[실버라이트 부분]

- 메인 함수 부분

Code Snippet
  1. public MainPage()
  2. {
  3.     // 변수를 초기화하는 데 필요합니다.
  4.     InitializeComponent();
  5.  
  6.     HtmlPage.RegisterScriptableObject("SilverlightApp", this);
  7.  
  8.  
  9. }

- 함수 선언 부분

Code Snippet
  1. [ScriptableMember]
  2. public void SendToSilverlight(string sMessage)
  3. {
  4.    // HtmlPage.Window.SetProperty("status", sMessage);
  5.     MessageBox.Show(sMessage);
  6. }

 

2.실버라이트->자바스크립트

- 실버라이트 함수 호출 부분

Code Snippet
  1. void btnTest_Click(object sender, RoutedEventArgs e)
  2. {
  3.     ///HTML Javscript 호출 GetProperty("test")
  4.     ///InvokeSelf(param1,parma2,param3);
  5.     ScriptObject myScriptMethod = (ScriptObject)HtmlPage.Window.GetProperty("TransMessage");
  6.     myScriptMethod.InvokeSelf(txtMessage.Text);
  7.  
  8. }

- HTML 부분

Code Snippet
  1. <script type="text/javascript" >
  2.  
  3.     function TransMessage(msg) {
  4.         alert("자바스크립트" + msg);
  5.  
  6.     }

참고: http://weblogs.asp.net/albertpascual/archive/2008/08/13/javascript-communication-to-silverlight-2-0.aspx