silverlight于javascript通信

2018-01-16 14:38:08 浏览数 (1)

silverlight小技巧

silverlight于javascript通信

在 silverlight中可以直接使用“HtmlPage.Window.Invoke()” 来调用js方法。也可用“RegisterScriptableObject().”和“[ScriptableMember]”把方法注册到js脚本 中,其调用方法为 “document.getElementById("mysilverlightControlID").Content.Page.UpdateText("你好(来自javascript)"); ”。

例子:

  • Page.xaml.cs
代码语言:js复制
public Page()
         {
             InitializeComponent();
             HtmlPage.RegisterScriptableObject("Page", this);
             HtmlPage.Window.Invoke("TalkToJavaScript", "你好(来自silverlgiht)");
         }
 
         [ScriptableMember]
         public void UpdateText(string result)
         {
             myTextbox.Text = result;
         } 
 
  • Default.aspx
代码语言:js复制
<script type="text/javascript"> 
         function TalkToJavaScript( data){     
                alert(data);     
                var control = document.getElementById("mysilverlightControlID");    
                control.Content.Page.UpdateText("你好(来自javascript)");   
         }
         </script> 
 
  • Page.xaml
代码语言:js复制
<UserControl x:Class="slcalljs.Page"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             Width="400" Height="300">
             <Grid x:Name="LayoutRoot" Background="White">
                 <TextBlock x:Name="myTextbox"></TextBlock>
             </Grid>
         </UserControl>
  
 

0 人点赞