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

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

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

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

——Silverlight与JavaScript交互第三篇

第一篇:Silverlight中C#获取与修改HTML DOM元素信息

第二篇:用JavaScript调用Silverlight(C#)中的方法

==================================

前面一篇讲了用JavaScript调用Silverlight(C#)方法的方式,这一篇讲讲怎样用Silverlight来调用JavaScript方法。

[Scriptable]标记真是非常的好,可以允许JavaScript访问Silverlight中的方法,还可以允许Silverlight来调用JavaScript方法。

和JavaScript调用C#方法一样,首先要为Page类注册一个实例名称,如下:

引用内容:

[Scriptable]

public partial class Page : Canvas

{

public Page()

{

WebApplication.Current.RegisterScriptableObject("OoboyNet", this);

}

....

}

假设我们在XAML中有这样一个矩形或者文本框或者按钮等等(看你自己的选择咯!),并假设它的x:Name为btnRect,那么我们首先在Page_Loaded方法中为其注册一个事件:

引用内容:

btnRect.MouseLeftButtonDown += new MouseEventHandler(btnRect_MouseLeftButtonDown);

然后我们再在C#中声明一个EventHandler,也用[Scriptable]标记一下,如下:

引用内容:

[Scriptable]

public event EventHandler CallJS;

我们再来写刚才为按钮btnRect注册的事件控制函数,代码如下:

引用内容:

void btnRect_MouseLeftButtonDown(object sender, MouseEventArgs e)

{

if (CallJS != null)

{

CallJS(this, EventArgs.Empty);

}

}

好C#中的工作做完了,下面就要写JavaScript了。在JavaScript中,首先要在createSivlerlight方法的events中注册一个onLoad事件,代码如下:

引用内容:

events: {

onLoad : OnLoaded

}

我们再为这个事件写一个控制函数,代码如下:

引用内容:

function OnLoaded(sender, args){

//我们刚才在C#里注册的实例OoboyNet

//C#里注册的事件CallJS,现在把这个事件的控制函数指定为JS方法

sender.Content.OoboyNet.CallJS = JSFunction;

}

好吧,剩下的就是最后指定的那个JS方法了:

引用内容:

function JSFunction(sender, args){

alert("This is from JavaScript");

}

OK,Silverlight与JavaScript、HTML DOM的交互三篇到这里就结束了。

Related articles 您可能对这些文章也感兴趣:
Related comments 与该文相关的评论:(我也想说几句)
引用这个评论  Fdream 于 9/20/2007 8:45:49 AM 发表评论: 

已更改^_^

已更改^_^
引用这个评论  红红博客 于 9/19/2007 10:27:37 PM 发表评论: 

红红博客的网址已变为http://www.diqici.com/redblog 麻烦你改下链接地址,谢谢!

红红博客的网址已变为http://www.diqici.com/redblog 麻烦你改下链接地址,谢谢!
Add a comment 我来说两句: 
禁止表情
禁止UBB
禁止图片
识别链接
识别关键字
表  情
arrow
用户名:   密码:  (匿名可不写) 同时注册?
验证码:   看不清?换个图片  看不清楚?换个图片

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