- 浏览: 671284 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
abao1:
老贾 在安装IDEA的过程中,在激活步骤时,按如下操作即可: ...
IntelliJ IDEA 2016注册方法和注册码 -
bo_hai:
./usr/bin/java: symbol lookup ...
jmagick安装步骤 -
wxcking:
不错的, 收藏一下
JAVA使用POI生成Excel文件 -
zgyfh:
大哥,密码是多少啊?zgyfh@tom.com谢谢了!新手学习 ...
WPF做的必备示例 -
记忆无泪:
jiasongmao 写道你的邮箱是多少,我可以发源代码到邮箱 ...
WPF做的必备示例
前言:
对于我们开发的silverlight应用来讲,有的时候可能会发布在内网上,或者是对silverlight的版本有着严格的要求等,所以我们希望没有安装过silverlight的客户端能够从自己的网站下载silverlight安装包,并且当安装过silverlight的客户端的版本低于我们系统要求时也能从我们网站下载silverlight安装包。这需要我们采用js来手动的创建silverlight对象。
让我们先来了解一下silverlight.js文件
Silverlight.js 文件提供一些 JavaScript 帮助器函数,这些函数用于将 Silverlight 插件嵌入某一网页和用于自定义 Silverlight 安装体验。它大致提供了如下几个方法:
本主题包括下列各节。
- createObject
- createObjectEx
- default_error_handler
- getSilverlight
- isBrowserRestartRequired
- isInstalled
- onGetSilverlight
- onSilverlightInstalled
- WaitForInstallCompletion
生成一个 HTML object 元素(该元素使用指定的参数值嵌入 Silverlight 插件)或替代 HTML(如果未安装 Silverlight)。
语法
Silverlight.createObject( source , parentElement , id , properties , events , initParams , userContext );
- 或 -
objectElement = Silverlight.createObject( source , null, id , properties , events , initParams , userContext );
参数
source
要加载的应用程序的 URI。请参见Source(Silverlight 插件对象) 。
parentElement
要在其中插入所生成 HTML 的 HTML 元素;若要返回生成的 HTML 而非插入它,则为 null。
id
生成的 object 元素的 id 属性值。
properties
名称和值对的数组。请参见“备注”。
events
事件名称和函数名称对的数组,将作为子 param 元素添加到生成的 object 元素中。
initParams
包含用逗号分隔的名称和值对的字符串;例如 "name1 =value1 ,name2 =value2 ,name3 =value3 "。
userContext
一个值,它在事件发生时传递到您的 onLoad 事件处理程序。
第一个参数值指定 Silverlight 插件的 Source 值。该值是必需的,它指示应用程序文件的位置和名称。通常在相对于 HTML 文件的位置指定一个 .xap 应用程序包。有关应用程序开发和应用程序包的更多信息,请参见应用程序模型 。
第二个参数指定将承载 Silverlight 插件的 HTML 元素。在本示例中,宿主元素是父级 div 元素。
第三个参数指定生成的 object 元素的 HTML DOM id 。
第四个参数指定属性值的数组。有关可用属性的更多信息,请参见 Silverlight 插件对象参考 。
跨浏览器兼容需要 width 和 height 属性。可以相对于父元素的宽度和高度指定固定像素值或百分比。如果使用相对缩放,可以通过处理 Content. Resized 事件来响应插件大小更改。有关更多信息,请参见调整 Silverlight 插件大小 。
version 属性指示所需的 Silverlight 版本。将向尚未安装所需版本的用户显示默认的安装映像。有关更多信息,请参见 Silverlight 插件版本控制 。
第五个参数指定事件处理程序的数组。有关 onLoad 事件处理程序的示例,请参见本主题的结尾部分。
第六个参数指定包含由逗号分隔的名称和值对的字符串。这些值传递到 Application. Startup 事件。有关更多信息,请参见如何:指定和检索自定义初始化参数 。
第七个参数(也是最后一个参数)指定可用来在 OnLoad 事件处理程序中唯一标识所生成的插件实例的值。有关用法示例,请参见本主题的结尾部分。
返回值
如果 parentElement 为 null,则为生成的 HTML object 元素或替代 HTML;否则不返回任何值。
备注
除 source 参数以外的所有参数都是可选的。
如果您指定某一 parentElement 值,则 createObject 函数会将该元素的 innerHTML 属性设置为生成的或替代的 HTML。否则,createObject 函数将返回该 HTML。
properties 和 events 数组参数将作为子 param 元素添加到生成的 object 元素。您可以使用 properties 参数来设置包括 background 、enableHtmlAccess 、maxFrameRate 和 windowless 的属性。可以使用 events 参数为 onLoad 和 onError 之类的事件指定处理程序。
有关这些属性和事件的信息,请参见 Silverlight 插件对象参考 。
您可以通过添加名为 version 的 properties 参数,指定所需的 Silverlight 版本。有关更多信息,请参见 Silverlight 插件版本控制 。
若要指定在未安装 Silverlight 时使用的替代 HTML,请添加名为 alt 的 properties 参数并将该替代 HTML 作为其字符串值。如果您没有提供某一 alt 值,则 createObject 函数将生成默认的安装 HTML。默认的安装 HTML 调用 getSilverlight 函数并向它传递 version 值(如果您已指定了值)。
createObject 函数为 onLoad 事件提供特殊处理。如果您提供一个 onLoad 处理程序,则 createObject 将用调用您的处理程序并向它传递以下参数的函数替换它:
-
对生成的 object 元素的直接引用。
-
userContext 值。
-
onLoad 事件的 sender 参数值。
这一特殊处理可用于在您使用单个 onLoad 处理程序(在某一网页中具有多个插件实例)时标识已加载插件。
有关更多信息,请参见如何使用 JavaScript 将 Silverlight 添加到网页 。
使用在单个数组参数中指定的参数值调用 createObject 函数。
语法
Silverlight.createObjectEx( params );
- 或 -
objectElement = Silverlight.createObjectEx( params );
参数
params
作为单个数组的 createObject 参数值。有关更多信息,请参见 createObject 参数列表。
返回值
请参见 createObject 返回值。
备注
请参见 createObject 备注。
为在弹出对话框中显示错误数据的 onError 事件提供默认处理程序。
语法
Silverlight.default_error_handler = function( sender , args ) { ... }
参数
返回值
处理事件的函数。
备注
您通常通过将 default_error_handler 设置为 null,在生产代码中禁止错误处理。
尝试下载 Silverlight 安装程序的指定版本。
语法
Silverlight.getSilverlight( version );
参数
version
表示请求的 Silverlight 版本的一个字符串,或者是用于请求最新版本的空字符串 ("")。有关版本号的信息,请参见 Silverlight 插件版本控制 。
返回值
无。
备注
在您使用 createObject 或 createObjectEx 时,默认的安装 HTML 指定在用户单击安装图像时调用 getSilverlight 函数。如果您提供自己的安装 HTML,则还应在用户请求安装时调用此函数。
getSilverlight 函数调用 onGetSilverlight 函数(如果您指定了该函数)。这使您可以在用户请求 Silverlight 安装程序时、但在安装程序下载开始前作出响应。
然后,getSilverlight 函数将生成并遵循用于指定的 Silverlight 版本的 Silverlight 安装 URI。这通常将向用户显示一个下载提示,而无需导航到不同的网页。但是,如果某一用户采用的是不支持的平台,则此函数会将浏览器导航到描述该问题的 Microsoft 网页。
指示在加载网页时是否已安装 Silverlight 插件,并且如果升级插件则要求浏览器重新启动。
语法
bool = Silverlight.isBrowserRestartRequired;
返回值
如果已安装 Silverlight 插件并且在升级后要求浏览器重新启动,则为 true ;否则为 false 。
备注
WaitForInstallCompletion 函数调用此函数,以便确定在安装 Silverlight 后是否自动刷新浏览器。
您可以使用 isBrowserRestartRequired 确定是否已安装 Silverlight,以及是否显示一条消息,指出在您升级时要求浏览器重新启动。
指示是否已安装指定的 Silverlight 版本。
语法
bool = Silverlight.isInstalled( version );
参数
version
一个表示 Silverlight 版本号的字符串。有关版本号的信息,请参见 Silverlight 插件版本控制 。
返回值
如果已安装 Silverlight 的指定版本,则为 true ;否则为 false 。
备注
createObject 和 createObjectEx 嵌入函数调用 isInstalled 函数,以确定是否已安装所请求的 Silverlight 版本。返回值确定这两个嵌入函数是将生成 HTML object 元素,还是生成提示用户安装或升级的替代 HTML。
WaitForInstallCompletion 函数调用 isInstalled 函数,以便确定自最后一次检查后是否已安装 Silverlight。
由 getSilverlight 函数调用,以便指示用户已请求 Silverlight 安装程序。
语法
Silverlight.onGetSilverlight = function() { ... };
参数
无。
返回值
getSilverlight 函数调用的函数。
备注
在您使用 createObject 或 createObjectEx 时,默认的安装 HTML 指定在用户单击安装图像时调用 getSilverlight 函数。还可以将 getSilverlight 用于您自己的安装 HTML。
getSilverlight 函数调用 onGetSilverlight 函数(如果您指定了该函数)。这使您无需修改安装 HTML,即可响应安装请求。在安装程序下载开始前调用 onGetSilverlight 函数。
某些浏览器会通过将下载请求映射到用户操作,阻止非预期的文件下载。如果 onGetSilverlight 函数的执行时间过长,则浏览器可能阻止该下载。因此,使 onGetSilverlight 函数避免执行长时间运行的操作非常重要,除非您以异步方式启动它们。您可以通过使用 setTimeout 方法,启动异步操作。
由 WaitForInstallCompletion 函数调用,以便在它检测到已安装 Silverlight 时刷新浏览器。
语法
Silverlight.onSilverlightInstalled = function() { ... };
参数
无。
返回值
WaitForInstallCompletion 函数调用的函数。
备注
WaitForInstallCompletion 函数在它检测到已安装 Silverlight 时将调用 onSilverlightInstalled 函数。但在用户从以前的版本升级 Silverlight 时,将不会发生上述调用。在这种情况下,用户必须重新启动浏览器。
您通常将使用 isBrowserRestartRequired 函数确定是否需要升级,然后显示相应消息。
默认 onSilverlightInstalled 函数将刷新浏览器窗口。您可以在网页的 onLoad 事件的处理程序中替换此行为。可以通过将该函数设置为 null,禁用自动刷新;或者,可以将其设置为您自己的函数。例如,代替刷新浏览器,您可以使用 createObject 或 createObjectEx 将新的 HTML object 元素直接插入您的网页。这样,无需浏览器刷新便可以嵌入新安装的插件。
定期检查是否有新的 Silverlight 安装,并在安装后刷新浏览器窗口。
语法
Silverlight.WaitForInstallCompletion();
参数
无。
返回值
无。
<script type="text/javascript"> var getSilverlightMethodCall = "DownloadSL.aspx" var installImageUrl = "images/SLMedallion_CHS.png"; var imageAltText = "Get Silverlight"; var altHtml = "<a href='{1}' style='text-decoration: none;'>" + "<img src='{2}' alt='{3}' " + "style='border-style: none'/></a>"; altHtml = altHtml.replace('{1}', getSilverlightMethodCall); altHtml = altHtml.replace('{2}', installImageUrl); altHtml = altHtml.replace('{3}', imageAltText); if (Silverlight.isInstalled("4.0.50401.0")) { Silverlight.createObject( "ClientBin/silverlightdemo.xap", document.getElementById('silverlightControlHost'), "silverlightObject", { width: "100%", height: "100%", background: "white", alt: altHtml, version: "4.0.50401.0", windowless: "true", splashscreensource: "Loading.xaml", autoUpgrade:"false" }, { onSourceDownloadProgressChanged: onSourceDownloadProgressChanged, onError: onSilverlightError }, "UserAccount=<%=HttpContext.Current.User.Identity.Name%>", null ); } else { if (confirm("您安装的silverlight版本低于本系统的要求,\r\n是否需要更新其版本?")) { var url="/DownloadSL.aspx"; top.location=url; } } </script>
发表评论
-
silvelright酷站
2011-03-22 18:47 808http://completit.com/# -
silverlight翻转代码
2011-03-13 18:46 1115using System; using System.Net ... -
silverlight独立存储示例
2011-03-07 17:17 1060void CreateDir(string dirNam ... -
silverlight SDK和toolit中控件英文如何转换为英文
2010-11-11 15:50 994解决方法: 设置 ... -
Silverlight4:网络地图服务
2010-10-16 11:01 1607Bing Maps与Google Earth一样 ... -
silverlight childwindow源码
2010-09-18 21:17 1968<!-- // (c) Copyright Micro ... -
精彩的 Silverlight 开源项目
2010-08-18 14:32 2925Silverlight 物理模型 http://www.c ... -
MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
2010-08-12 10:34 955本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
2010-08-12 10:03 654本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南三:MEF中组合部件(Composable Parts)与契约(Contracts)的基本应用
2010-08-12 09:52 569本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南二:Silverlight中使用CompositionInitializer宿主MEF
2010-08-12 09:24 862本系列文章非原创,转载自: 作 者:Beniao ... -
MEF程序设计指南一:在应用程序中宿主MEF
2010-08-12 09:17 1051本系列文章非原创,转 ... -
silverlight应用程序库缓存
2010-08-10 14:22 1526应用程序库缓存可在用户重新访问网站时帮助改善启动性能。 ... -
Prism动态模块加载
2010-08-10 10:27 1668这篇介绍模块在silverlight的特殊应用. sil ... -
Silverlight中Json数据的转换方法(中文)
2010-08-04 11:36 1245[DataContract] public clas ... -
silverlight万花筒效果
2010-07-28 16:14 894见附件。 -
silverlight如何将颜色字符串转换为颜色
2010-07-02 10:42 1536public class ColorUtil { ... -
silverlight中Tab转Enter的实现方法
2010-06-04 17:38 1738silverlight项目中要求界面全键盘操作,并且在光标移动 ... -
在两个Silverlight应用间数据通信(包括与Flash通信)
2010-05-13 17:06 1008声明:该博文转载自:http://daizhj.blog.51 ... -
silverlight和js相互调用
2010-05-13 16:56 1677步骤一:在silverlight后台代码类中声明被js调用的方 ...
相关推荐
在JavaScript中,我们可以使用`silverlight.js`库来操作Silverlight对象,例如初始化Silverlight插件、调用Silverlight中的方法或传递数据。`QueryForSilverlightMarker.js`可能包含了这些功能的实现,通过...
要从JavaScript调用Silverlight对象的方法,我们需要在HTML页面中设置一个Silverlight对象的ID,然后通过`window.external`对象来访问Silverlight的公共方法。例如: ```html <object id="silverlightControl" data...
通过上述方式,Silverlight-js结合可以创建出强大的Web应用程序,利用Silverlight的图形渲染能力和JavaScript的动态性,为用户提供丰富的交互体验。在深入学习时,建议查看官方文档、教程和示例代码,以更好地理解和...
本话题主要围绕如何在Silverlight中实现带图标的树形菜单以及如何通过Silverlight调用JavaScript来完成特定任务,如退出系统或关闭当前网页。 首先,让我们深入探讨Silverlight中的树形菜单。树形菜单是一种常见的...
打开`Views/Shared/Location`下的`Site.Master`文件,在`<head>`标签的适当位置插入Silverlight对象所需的代码(确保引入`Silverlight.js`文件以处理错误)。同时,打开`Views/Home/directory`下的`Index.aspx`文件...
WebDriver 支持多种浏览器,包括Chrome、Firefox、IE等,但对于Silverlight,它需要额外的插件或驱动程序来识别和操作Silverlight对象。例如,使用`SilverlightDriver`,你可以通过WebDriver直接与Silverlight内容...
1. **Silverlight.js**:这是一个JavaScript库,由Microsoft提供,用于在网页中动态加载、初始化和控制Silverlight对象。它包含了一系列方法和属性,如`createObjectEx`函数,用于创建和插入Silverlight插件到HTML文...
【标题】中的“基于js+Silverlight+C#实现的漂亮导航工具栏程序源码例子”表明这是一个编程项目,它结合了JavaScript、Silverlight和C#三种技术来创建一个美观的导航工具栏。这个项目可能是一个Web应用,因为它涉及...
在Silverlight端,你可以通过`HtmlPage.RegisterScriptableObject()`方法注册一个对象,然后在JavaScript中通过这个对象调用Silverlight方法。 此外,需要注意跨域安全问题。如果Silverlight应用和HTML页面不在同一...
步骤1:在HTML页面中,嵌入Silverlight对象并设置适当的属性,如源(Source)和初始化参数(InitParams),以便在Silverlight应用启动时传递必要的信息。 步骤2:在Silverlight应用中,创建一个JavaScript调用的...
`Page.xaml.js`可能包含一些JavaScript函数,用于处理Silverlight对象的事件,如加载、初始化或错误处理。`Silverlight.js`是微软提供的库文件,用于在浏览器环境中创建和管理Silverlight对象。 `Default_html.js`...
- **打印功能**:虽然Silverlight本身不直接支持打印功能,但可以使用JavaScript或.NET框架中的其他技术来实现。 #### 设计模式 - **Model-View-ViewModel (MVVM)**:这是一种非常流行的架构模式,用于分离数据模型...
开发者可能需要了解如何在HTML页面中嵌入Silverlight控件,以及如何使用JavaScript调用Silverlight对象的方法和属性。 在Silverlight的网络通信方面,WCF RIA Services或者ASP.NET Web Services通常被用来在客户端...
1. **InvokeScript方法**:在JavaScript中,可以调用Silverlight对象的`invokeScript`方法来调用Silverlight中的公共方法并传递参数。例如: ```javascript var slObject = document.getElementById('...
- **类与对象**:理解面向对象编程的概念,创建类和对象,实现继承和多态。 ### 6. 银光控件和API - **内置控件**:熟悉Silverlight提供的各种内置控件,如TextBox、RadioButton、ListBox等,以及它们的用法。 - **...
通过JavaScript与Silverlight对象交互,将文件选择事件传递给Silverlight应用。 2. **文件选择事件处理**:在Silverlight中监听文件选择事件,获取用户选择的文件信息。你可以使用`System.Windows.Browser....
这可以通过在JavaScript中调用Silverlight对象的方法实现,反之亦然,Silverlight也可以触发JavaScript函数来更新地图状态。 对于Google Maps API的使用,你需要在HTML中设置API密钥并加载地图库,然后在...
这些特性允许Silverlight对象暴露给JavaScript,使得JavaScript能够调用Silverlight中的方法或者访问其成员。 首先,创建了一个名为`Silverlight_JS_call`的Silverlight应用程序。在这个项目中,添加了一个名为`...
1. 在HTML页面中,创建一个Silverlight对象,并为其定义一个ID,以便通过JavaScript访问。 2. 在Silverlight项目中,创建一个公开的方法,如`MyMethod`,并添加`[ScriptableMember]`特性。 3. 在JavaScript中,使用`...