半岛外围网上直营

添加Silverlight应用到HTML

原创|其它|编辑:郝浩|2009-12-25 10:42:44.000|阅读 568 次

概述:Silverlight是跨浏览器,跨客户平台的浏览器插件,可以应用在Windows,Linux,Mac等平台。作为浏览器插件,Silverlight可以像Flash一样,很方便的嵌套在HTML页面中,下面我来介绍一下,如何添加Silverlight应用到HTML页面。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

Silverlight是跨浏览器,跨客户平台的浏览器插件,可以应用在Windows,Linux,Mac等平台。作为浏览器插件,Silverlight可以像Flash一样,很方便的嵌套在HTML页面中,下面我来介绍一下,如何添加Silverlight应用到HTML页面。

1. 首先,我们来看看VS2008自动生成的代码,新建一个Silverlight应用项目,Html_SilverlightChina,创建的时候选中将Silverlight项目分布到Web项目中。

 

2. 创建项目后,在Web项目中,会自动生成测试文档页面,分别是Html_SilverlightChinaTestPage.aspx和Html_SilverlightChinaTestPage.html,由于本文是讲述如何添加Silverlight应用到HTML,所以,我们将集中讲述Html_SilverlightChinaTestPage.html页面代码。

 

 

 

HTML代码
 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="//www.w3.org/1999/xhtml" >
 3 
 4 <head>
 5     <title>Html_SilverlightChina</title>
 6     <style type="text/css">
 7     html, body {
 8    ;     height: 100%;
 9 &nbsp;       overflow: auto;
10     }
11     body {
12       &nbsp; padding: 0;
13      &nbsp;  margin: 0;
14     }
15 &nbsp;   #silverlightControlHost {
16        ;&nbsp;height: 100%;
17      &nbsp;  text-align:center;
18     }
19     </style>
20     <script type="text/javascript" src="Silverlight.js"></script>
21     <script type="text/javascript">
22         function onSilverlightError(sender, args) {
23        &nbsp;    var appSource = "";
24             if (sender != null && sender != 0) {
25               appSource = sender.getHost().Source;
26             }
27             
28  &nbsp;  &nbsp;       var errorType = args.ErrorType;
29            &nbsp;var iErrorCode = args.ErrorCode;
30 
31             if (errorType == "ImageError" || errorType == "MediaError") {
32    &nbsp;   &nbsp;      return;
33             }
34 
35   &nbsp;         var errMsg = "Unhandled Error in Silverlight Application " +  appSource + "\n" ;
36 
37         &nbsp;   errMsg += "Code: "+ iErrorCode + "    \n";
38      &nbsp;   &nbsp;  errMsg += "Category: " + errorType + "       \n";
39       &nbsp;     errMsg += "Message: " + args.ErrorMessage + "     \n";
40 
41        &nbsp;    if (errorType == "ParserError") {
42     &nbsp;           errMsg&nbsp;+= "File: " + args.xamlFile + "     \n";
43    &nbsp;            errMsg += "Line: " + args.lineNumber + "     \n";
44      &nbsp;     &nbsp;    errMsg += "Position: " + args.charPosition + "     \n";
45             }
46        &nbsp;    else if (errorType == "RuntimeError") {           
47                &nbsp;if (args.lineNumber != 0) {
48         &nbsp;           errMsg += "Line: " + args.lineNumber + "     \n";
49    &nbsp;  &nbsp;             errMsg += "Position: " +  args.charPosition + "     \n";
50                 }
51          &nbsp;      errMsg += "MethodName: " + args.methodName + "     \n";
52             }
53 
54  &nbsp;       &nbsp;  throw new Error(errMsg);
55         }
56     </script>
57 </head>
58 <body>
59     <form id="form1" runat="server" style="height:100%">
60     <div id="silverlightControlHost">
61         <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
62    &nbsp;    ;  <param name="source" value="ClientBin/Html_SilverlightChina.xap"/>
63  &nbsp;        <param name="onError" value="onSilverlightError" />
64        &nbsp;  <param name="background" value="white" />
65  &nbsp;        <param name="minRuntimeVersion" value="3.0.40818.0" />
66 &nbsp;         <param name="autoUpgrade" value="true" />
67 &nbsp;      &nbsp;  <href="//go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
68   &nbsp;            <img src="//go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
69      &nbsp;  &nbsp; </a>
70         </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px&quot;></iframe></div>
71     </form>
72 </body>
73 </html>

 

 

3. 在上面的HTML代码中,主要代码分为三部分,第一部分是样式表CSS代码,第二部分是Javascript脚本代码,第三部分是HTML Body代码。

对于CSS样式代码,这里不再赘述。我们来分析一下Javascript代码和HTML Body代码。首先说说Javascript脚本代码,在Javascript脚本中,有一个onSilverlightError函数,该函数的功能是处理Silverlight应用外部异常错误信息的。例如,如果浏览器无法下载XAP文件,该错误信息会由onSilverlightError函数处理,将会在浏览器中弹出报错窗口,出现报错时,Silverlight应用将停止运行。onSilverlightError函数作为默认的外部错误信息处理函数,在Silverlight中是这样调用的:

 

<param name="onError" value="onSilverlightError" />

 

 

而通过Javascript中的

 

 throw new Error(errMsg);

 

 

传递错误信息到浏览器。 当然,开发人员可以根据需求自定义错误处理函数,或者修改错误处理函数。例如,修改errMessage为errorLocation.InnerHTML,错误信息显示也会不同。

 

4. <Object>标签是调用Silverlight的主要标签,该标签中包含了很多属性标签,其中关键的属性是"type",该标签标识了该Silverlight应用所需要的Silverlight版本。在本应用中,我建立的是Silverlight 3应用,type="application/x-silverlight-2", 该标签和Silverlight 2 的type标签内容相同,我查看了Silverlight 3 Release Note,微软解释是为了Silverlight2应用升级到Silverlight3兼容性,使用相同标签内容。我看了一下Silverlight beta 2版本的标签,是type="application/x-silverlight-2-b2"。

 

 1 <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
 2 &nbsp;         <param name="source" value="ClientBin/Html_SilverlightChina.xap"/>
 3 &nbsp;         <param name="onError" value="onSilverlightError" />
 4 &nbsp; &nbsp;       <param name="background" value="white" />
 5       &nbsp;  &nbsp;<param name="minRuntimeVersion" value="3.0.40818.0" />
 6           <param name="autoUpgrade" value="true" />
 7         &nbsp;&nbsp;<href="//go.microsoft.com/fwlink/?LinkID=149156&amp;v=3.0.40818.0" style="text-decoration:none">
 8 &nbsp;              <img src="//go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
 9           </a>
10         </object>

 

 

在<Object>标签中,<param>标签定义了Silverlight实例参数。其中&quot;source"是比较重要的一个参数,标识XAP文件的位置。有些时候,根据项目需要,也可以将source留为空,然后在XAML中使用Javascript代码进行调用。

对于Object的参数,我想使用一个表格来列述:

 

参数

介绍

AutoUpgrade

 允许开发人员控制终端用户的Silverlight是否自动升级。默认为True

Background

设置应用背景颜色,默认为Null

enableFramerateCounter

是否在浏览器状态栏显示当前帧速率,默认为false

enableHtmlAccess

是否允许访问浏览器DOM,默认为false,如果为true,将允许Silverlight访问网页

iniParams

初始化参数信息,通过该参数可以从网页传递参数到Silverlight应用中,在Silverlight中可以通过后台代码获取参数(非常有用)

minRuntimeVersion

运行该应用的最低Silverlight版本,在本例中,最低版本是Silverlight 3.0.40818.0

maxFramerate

 设置最大的帧速率,默认是每秒60

onLoad

可以在本事件中调用自定义Javascript函数

splashScreenSource

设置一个xaml文件作为下载XAP的时候,动画开始页面

Source

XAP路径

 

 5. 在<Object>中有一段代码是这样的:

 

<href="//go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
  &nbsp;             
<img src=&quot;//go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
    ;       
</a>

 

 

这段代码是检测如果浏览器没有安装Silverlight客户端插件,会显示"Get Silverlight"的图片,提示用户下载并安装Silverlight客户端。有的国内的开发人员认为每次到微软网站下载速度太慢,可以修改""链接,让用户到本地或者指定连接下载Silverlight客户端插件。

 

 我们来完成上面的项目,添加简单代码,完成演示,

 我上传了一个XAP文件到cnblogs,下面我使用以下代码调用即可。

 

代码
 1 <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
 2           <param name="source" value="/jv9/Html_SilverlightChina.xap"/>
 3         ;  <param name="onError" value="onSilverlightError" />
 4           <param name="background" value="white" />
 5       &nbsp;   <param name="minRuntimeVersion" value="3.0.40818.0" />
 6          ; <param name="autoUpgrade" value="true" />
 7  &nbsp;      ;  <href="//go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40818.0" style="text-decoration:none">
 8 &nbsp;            ;  <img src="//go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
 9       &nbsp;   </a>
10         </object>

 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn

文章转载自:博客园

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP
利记足球官网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 真人boyu·博鱼滚球网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 最大网上PM娱乐城盘口(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 正规雷火竞技官方买球(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 雷火竞技权威十大网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) boyu·博鱼信誉足球官网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 权威188BET足球网(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新) 正规188BET足球大全(官方)网站/网页版登录入口/手机版登录入口-最新版(已更新)