Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1529900
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 23:22:18

一起学习
lverlight可以整合进网站的文档树(DOM),这意味着Silverlight可以调用javascript的功能和方法,而javascript也可以Silverlight调用Silverlight的功能。
为了说明这项特性,下面一则例子可以做些展示:

image

这张网页包含两个区域,一个javascript区域和一个silverlight区域,每一个区域中都有一个小方形。当你在一个区域中移动这个小方形的时候,另一个区域的小方块也会立即更新位置。下面就来展示如何做到从silverlight到javascript区域中小方块位置的更新。

从silverlight调用Javascript

在Silverlight中的System.Windows.Browser命名空间里有一个HtmlPage对象,该对象可以允许你访问网页的DOM。所以,在javascript区域中移动小方形就只需要如下一行简单的代码:
HtmlPage.Window.Invoke("moveBox", newX, newY);
其中,"moveBox"是javascript的一个方法名字,用来更新红色小方形的位置。

从Javascript调用silverlight

这一步要稍微复杂一些。首先我们需要标记哪一个类要暴露给javascript调用,其次需要注册该类使得javascript可以调用。然后,给与那些要给javascript调用的方法赋予ScriptableMember的属性,这里方法MoveBox用来更新蓝色小方形的位置的。代码如下:

[ScriptableType]
publicpartialclassPage : UserControl

HtmlPage.RegisterScriptableObject("silverlightMove",this);

[ScriptableMember]
publicvoidMoveBox(intx,inty)

当上面的步骤完成后,就可以回到javascript调用silverlight了,其中"silverlightControl"是该例子中Silverlight应用的对象标记(tag)。

silverLightControl = document.getElementById("silverlightControl");

silverLightControl.content.silverlightMove.MoveBox(x, y);

这则例子的代码可以在如下网址找到:

The code for this sample can be found athere at MSDN Code Gallery.

下载本文示例代码


Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合Silverlight和JavaScript的结合
阅读(209) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~