SilverLight浏览器交互之:Html页面通过Javascript调用SilverLight程序内方法(附源码)...

概述:

SilverLight运行浏览器时,像Ajax一样可以在Html页面通过Javascript调用SilverLight程序内方法。

效果:

2011042815051484.jpg

[ScriptableMember]

指示可由 JavaScript 调用方访问的特定属性、方法或事件。

为了调用SilverLight项目中的方法,我们必须指定该方法能否被Javascript调用

HtmlPage.RegisterScriptableObject 方法
注册托管对象以便用于通过 JavaScript 代码的可脚本化访问。

为了使浏览能够通过Javascript访问SilverLight程序,必须先声明该SilverLight程序能被Javascript调用。

Xaml代码:

 
  
< Grid x:Name ="LayoutRoot" Background ="YellowGreen" >

</ Grid >

SilverLight CS代码:

 
  
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();

// HtmlPage.RegisterScriptableObject 方法
// 注册托管对象以便用于通过 JavaScript 代码的可脚本化访问。
HtmlPage.RegisterScriptableObject( " Button " , this );
}

/// <summary>
/// 执行网络服务
/// [ScriptableMember]指示可由 JavaScript 调用方访问的特定属性、方法或事件。
/// </summary>
[ScriptableMember]
public void ExecuteWebService()
{
MessageBox.Show(
" 我是SilverLight项目中的MessageBox " , " o(∩_∩)o 哈哈 " ,MessageBoxButton.OK);
}

}

好现在我们看看怎么在Html页面调用SilverLight 代码:

创建一个SilverLight插件,使Javascript可以调用插件里面注册的方法。

 
  
<!--
通常会使用这个对象标签方法 创造Silverlight插件
-->
< body style ="height: 100%;" >
< div id ="mySilverlightHost" style ="height: 100%;" >
< script type ="text/javascript" >
var host = document.getElementById( " mySilverlightHost " );

// 创建一个指定的对象并返回对它的引用。
Silverlight.createObjectEx({
// 设置创建对象的数据来源
source: " ClientBin/ReferencingFromScript.xap " ,
// 设置对象层次的父对象
parentElement: host,
// 设置唯一标识id
id: " mySilverlightControl " ,
// 设置属性
properties: {
height:
" 100% " ,
width:
" 100% " ,
version:
" 2.0 "
},
events: {}
});
</ script >
</ div >
< input type ="button" onclick ="buttonClick();" value ="调用SilverLight方法" />
</ body >

写Javascript类来调用方法:

 
  
< head >
< title > Silverlight Project Test Page </ title >
< script type ="text/javascript" src ="Silverlight.js" ></ script >
< script type ="text/javascript" >
function buttonClick() {
// 获取SilverLight插件中 以创建的对象
var plugin = document.getElementById( " mySilverlightControl " );
// 执行SilverLight项目中已经注册的可被Javascript调用的方法
plugin.content.Button.ExecuteWebService();
}
</ script >
</ head >

大功告成!!!

源码下载


作者:记忆逝去的青春
出处:http://www.cnblogs.com/lukun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过http://www.cnblogs.com/lukun/  联系我,非常感谢。

转载于:https://www.cnblogs.com/lukun/archive/2011/04/28/2031866.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值