Fdream's Blog
专注于WEB前端开发
Powered by Google

用JavaScript调用Silverlight(C#)中的方法

18 刮风 2007-9
Fdream 发表于 Silverlight, 已被阅读 15226 次, 评论 1 条
关键词:Silverlight C# JavaScript
[ 阅读字体大小: ]

用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>

Related articles 您可能对这些文章也感兴趣:
Related comments 与该文相关的评论:(我也想说几句)
引用这个评论  jiankang 于 10/15/2007 10:46:31 AM 发表评论: 

本群征集在上海从事IT行业的精英人才,我们共同努力共同发展。

群号码:46659711欢迎加入 现在人员80

本群征集在上海从事IT行业的精英人才,我们共同努力共同发展。 群号码:46659711欢迎加入 现在人员80
Add a comment 我来说两句: 
禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
表  情
arrow
用户名:   密码:  (匿名可不写) 同时注册?
验证码:   看不清?换个图片  看不清楚?换个图片

 
Copyright © 2005-2008,Fdream All Rights Reserved
Processed in 0.1250016 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号