预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共18页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Silverlight系列课程35讲 Silverlight2与HTML互相访问 苏鹏 MVP MSDN特约讲师 点击添加MSN机器人小新 为您收听下载MSDN中文网络广播课程加油助力! 内容介绍 •借助JavaScript使Silverlight可脚本化 •HTMLBridge中的异常处理行为 •HTML桥中的安全设置 •Silverlight和JavaScript封送处理 •总结 Level200 HTMLBridge可以做的事 •对JSJavaScript公开全部托管类型以便于编写脚本 •对JavaScript公开托管类型的各个方法以便于编写 脚本 •将托管类型作为参数传递给JavaScript函数和对象 •从JavaScript返回托管类型 •作为事件处理程序分配托管类型,这些事件处理程 序可从JSiJavaScript调用 •从托管类型调用JavaScript事件处理程序 •控制基于Silverlight的应用程序的各个安全方面 借助JavaScript使Silverlight 可脚本化 •将成为将类型和成员标记为可脚本化 •将JavaScript方法附加到可脚本化的托管事 件 •类型EventHandler的属性 •ScriptEventHandler类API •对ASP.NETAJAX的特殊支持 将类型成员标记为可脚本 化 •属性脚本化 •代码示例 •publicclassMyStockWatcher •{ •[ScriptableMemberAttribute] •publicstringSomeProperty{get;set;} •[ScriptableMemberAttribute] •publiceventEventHandlerSomeEvent; •[ScriptableMemberAttribute] •publicstringDoWork(intcount); •} 对象脚本化示例 •通过使用RegisterScriptableObject(String, Objj)ect)方法,可以显式地向运行时注册可 脚本化类型的一个实例。 •MyStockWatchermnewm=new MyStockWatcher(); HtmlPage.RegisterScriptableObject("stockw atcher",m); 注意事项 •如果事件脚本化,则事件所需参数也必须脚本化 •可脚本化类型必须是公共类型 •可由JavaScript访问的属性、方法或事件必须是公 共的并用ScriptableMemberAttribute标记为可脚本 化 •为了优化代码,可以使用ScriptableTypeAttribute 属性化一个类。这意味着该类型上的所有公共属性 、方法和事件将自动可供JSitJavaScript访问。 •可脚本化的事件属性必须属于类型EventHandler或 EventHandler<(Of<(TEventArgs>)>)或者这些类型 的派生类型。当前,可脚本化的功能并不支持在可 脚本化事件中使用任意委托。 脚本化事件 •代码示例 •[ScriptableMemberAttribute] •publicEventHandlerOnClick •{ •get{return_onClick;} •set{_onClick=onClick;} •} •myScriptableObject.OnClick=function(){alert("Click");}; •myScriptableObject.OnClick(); •//Assumesthisisthesameapplicationdomain. •EventHandlerEVH1= (EventHandler)HtmlPage.Plugin.GetProperty("OnClick"); •EVH1(); HTMLBridge中的异常处理 行为 •将托管异常传递给JavaScript •HTMLBridge功能不支持Silverlight应用程 序对象上的UnhandledException事件。因 此,异常字符串由ToString方法进行格式 化并返回给JavaScript。在嵌套异常等高级 事例中,只有顶级异常消息和堆栈跟踪返 回给JJpavaScript。 将JavaScript异常传递给托 管代码 •HTMLBridge功能不区分不同类型的 JJpavaScript异常,也不将这些异常映射到特 定的托管异常类型。而是将JavaScript异常 作为InvalidOperationException对象返回 给托管代码。 将JavaScript异常传递给托 管代码 •托管方法CarObj