用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>
您可能对这些文章也感兴趣:- 用JavaScript调用Silverlight(C#)中的方法
- 用XamlReader做一个简单的XAML预览工具
- Path的Stroke和Fill属性不能指向同一个SolidColorBrush对象?
- Silverlight Alpha 1.1十一月份不会过期
- Silverlight对MMS的支持并不好
- 让Silverlight User Control接收键盘消息
- 其实BrowserHost.Resize好像有个BUG
- Silverlight中Downloader的缺陷?
- Silverlight 3 Beta出来了
- Frame里的网页不能透明?
与该文相关的评论:(我也想说几句)Processed in 0.2187556 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
我来说两句:
用户中心
日志分类

最新日志
统计信息






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