用JavaScript调用Silverlight(C#)中的方法
2007-9
用JavaScript调用Silverlight(C#)中的方法
——Silverlight与JavaScript交互第二篇
第一篇:Silverlight中C#获取与修改HTML DOM元素信息
第三篇:用Silverlight(C#)调用JavaScript中的方法
======================================
Silverlight是基于浏览器的应用,因此在Silverlight与用户的交互过程中,经常需要涉及Silverlight与JavaScript的交互,用JavaScript调用Silverlight中的方法也就比较正常。在Silverlight中,提供了这样的解决方式:使用[Scriptable]标签则可以允许JavaScript访问该标签下的类、属性和方法。
用调JavaScript用Silverlight(C#)中的方法的实现步骤如下:
在Page类(自动生成的部分)的上面加上[Scriptable]标签,表示允许JavaScript访问这个类。代码如下:
[Scriptable]
public partial class Page : Canvas
其次,我们要为这个Page类实例注册一个名字,可以为该Page类写一个构造函数,然后在构造函数中为其注册。代码如下:
[Scriptable]
public partial class Page : Canvas
{
public Page()
{
//注册的名字叫做testcallcs
//在JavaScript代码里面我们会用到这个名字
WebApplication.Current.RegisterScriptableObject("testcallcs", this);
}
}
然后我们再在该类中写一个方法,以供JavaScript调用。这个方法也要用[Scriptable]标签标记,如下:
[Scriptable]
public string TestJS()
{
return "This is From C#";
}
特别需要注意的是:目前Silverlight和JavaScript之间只能传递字符串。因此在处理的过程中要注意类型转换。
我们再看看,在JavaScript中怎么调用这个方法。
<script language="javascript" type="text/javascript">
//首先找到你的HTML页面中的Silverlight控件
var ctrl=document.getElementById("SilverlightControl");
//再找到你刚才注册的Page类实例
var manage = ctrl.Content.testcallcs;
//OK,你可以调用刚才写的方法了
alert(manage.TestJS());
</script>
您可能对这些文章也感兴趣:- 奇怪的Silverlight更新
- Silverlight 2 Beta 2: Available very soon
- 在Silverlight 2中使用嵌入字体
- Silverlight 1.1 Alpha & VS 2008 Beta 2 将于11月1日过期
- Silverlight版Windows Vista
- 返回指定Canvas中的所有TextBlock
- 让Silverlight的大小随浏览器大小变化
- Silverlight 1.1 Tools for Visual Studio 2008
- 这就是PPStream的概念版网络电视?
- Silverlight VS Flash,谁更强?
与该文相关的评论:(我也想说几句)Processed in 0.1250016 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
我来说两句:
用户中心
日志分类

最新日志
统计信息






本群征集在上海从事IT行业的精英人才,我们共同努力共同发展。
群号码:46659711欢迎加入 现在人员80