用Silverlight(C#)调用JavaScript中的方法
2007-9
用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的交互三篇到这里就结束了。
您可能对这些文章也感兴趣:- 让Silverlight User Control接收键盘消息
- Silverlight中Downloader的缺陷?
- Silverlight读XML是件痛苦的事情
- Silverlight 2.0 RTW发布,等写完MooTools文档开始玩
- Silverlight 1.1 Alpha & VS 2008 Beta 2 将于11月1日过期
- Frame里的网页不能透明?
- Silverlight与Flash相比几大缺点
- 用Silverlight(C#)调用JavaScript中的方法
- 用XamlReader做一个简单的XAML预览工具
- 奇怪的Silverlight更新
与该文相关的评论:(我也想说几句)红红博客的网址已变为http://www.diqici.com/redblog 麻烦你改下链接地址,谢谢!
Processed in 0.0625052 second(s) , unknow queries
Powered by OWord V0.1, Even Not Alpha
(此博客程序为半成品,请勿索取,以免给您的心灵造成创伤^_^)
鄂ICP备05026031号
我来说两句:
用户中心
日志分类

最新日志
统计信息






已更改^_^