从 JavaScript 调用silverlight方法

先决条件

  • Silverlight 版本 4.

  • 用于 Visual Studio 2010 的 Silverlight 4 Tools.

  • Microsoft Visual Studio 2010.

创建 Silverlight 项目和测试页

  略

注册用于客户端脚本访问的托管代码

1、

public Page()   

{    

   InitializeComponent();   

   HtmlPage.RegisterScriptableObject("Page", this);  

   this.timer = new DispatcherTimer();  

   this.timer.Tick += new EventHandler(Timer_Tick);   

   this.timer.Interval = TimeSpan.FromMilliseconds(400);   

}


 

2、在 script 元素中,创建 Silverlight 应用程序完成加载后将调用的 pluginLoaded 函数。

<script type="text/javascript" language="javascript">     

 var slcontrol = null;    

  function pluginLoaded(sender, args) {  

            if (sender != null && sender != 0) {           

   slcontrol = sender.getHost();      

    }   

   }    

  function StartPare( a, b)      {  

     if (slcontrol) {             

 slcontrol.Content.Page.StartPara(a,b);    

      }    

  }     

 function ReturnPare() {         

 if (slcontrol) {            

  var j = slcontrol.Content.Page.StopPara();        

      alert(j.toString());         

 }

 }  

</script>


 

3、Silverlight 控件标记与下面的代码类似:

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="400" height="300">

          <param name="source" value="ClientBin/JavaScriptToSilverlight.xap"/>

          <param name="onError" value="onSilverlightError" />

          <param name="background" value="white" />

          <param name="minRuntimeVersion" value="4.0.50401.0" />

          <param name="autoUpgrade" value="true" />

          <param name="onload" value="pluginLoaded" />

          <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none">

               <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>

          </a>

        </object>

 

使用 JavaScript 获取和设置托管代码属性值

该按钮的 HTML 标记

显示行号 复制代码
  1. <input type="button" value="StartPare" onclick="StartPare(2,3);" />
    
    
  2.  <input type="button" value="ReturnPare" onclick="ReturnPare();" />
    
    

 


silverlight页面的代码

int j = 0;

   [ScriptableMember]

   public void StartPara(int a, int b)

   {

        j = a + b;

   }

   [ScriptableMember]

   public int StopPara()

   {

       return j;

   }

你可能感兴趣的:(silverlight)