Silverlight.js: 文件提供一些 JavaScript 帮助器函数,这些函数用于将 Silverlight 插件嵌入某一网页和用于自定义 Silverlight 安装体验。
常用函数:
createObject : 创建或者返回一个SL对象.
函数原型:
Silverlight.createObject(source, parentElement, id, properties, events, initParams, userContext);
source:Xap文件的地址
parentElement:要加载到JHTML的节点,若为null则返回创建此对象的HTML字符串,否则无返回值,直接加载到节点上.
id:生成此对象的ID
properties:数组,包括{background:"red",enableHtmlAccess:true,maxFrameRate:30,windowless:false,version:"4.0",alt:"" }等,//至少要在此属性中指定一个版本,否则会报JS错误,但不保证生成正确的SL对象(SL3.0)
events:数组,包括onLoad和onError等
initParams:字符串,如 "arg1=val1,arg2=val2"
userContext:它在事件发生时传递到您的 onLoad 事件处理程序。可以使用些参数确认多个中的那个SL对象加载完成
Silverlight.createObject("ClientBin/MySilverlight.xap", silverlightHost, "SilverlightPugin", { background: "red", enableHtmlAccess: true, maxFrameRate: 300 }, { onLoad: function(a,b) { alert(b);//弹出hwj383 }, onError: function() { alert("加载出错"); } }, "arg1=val1,arg2=val2", "hwj383");
使用些方法会用SL生成的HTML替换 parentElement.innerHTML
createObjectEx :创建或者返回一个SL对象.接受一个数组参数.
在MSDN上并没有查阅到相关定义数组信息,但是通过调试:
Silverlight.createObjectEx=function(b){var a=b,c=Silverlight.createObject(a.source,a.parentElement,a.id,a.properties,a.events,a.initParams,a.context);
createObjectEx直接调用creatObject方法.
参数为 var obj = new Object();
obj["source"]="ClientBin/MySilverlight.xap"
obj["parentElement"]
obj["id"]
obj["properties"] //至少要在此属性中指定一个版本,否则会报JS错误,但不保证生成正确的SL对象(SL3.0)
obj["events"]
obj["initParams"]
obj["context"]
Silverlight.createObjectEx({ source: "ClientBin/MySilverlight.xap", parentElement: silverlightHost, properties: { version: "3.0"} });
default_error_handler :在弹出对话框中显示错误数据的 onError 事件提供默认处理程序。
Silverlight.default_error_handler = function(sender,args){ //code }
getSilverlight :请求(下载)一个指定版本号的SL客户端插件,或使用""空串请求最新版本 如使用 getSilverlight("3.0")或getSliverlight("") getSilverlight 将调用 onGetSilverlight 方法.如果"订阅"此方法,可以在下载前做某些操作:如:
Silverlight.onGetSilverlight = function()
{
alert("您将马上安装Silverlight插件,请稍候...");
}
isBrowserRestartRequired :
指示在加载网页时是否已安装 Silverlight 插件,并且如果升级插件则要求浏览器重新启动。
返回值:如果已安装 Silverlight 插件并且在升级后要求浏览器重新启动,则为 true;否则为 false。
isInstalled :指示是否安装某一版本(或 兼容)的Silverlight,不必指定多级子版本号,可以只指定主版本号,如 3.0
Silverlight.isInstalled ("2.0"),测试是否安装2.0或以上的版本SL
onGetSilverlight ://同上
onSilverlightInstalled :
Silverlight.onSilverlightInstalled = function() {
alert("要做什么?");
}
WaitForInstallCompletion 函数在它检测到已安装 Silverlight 时将调用 onSilverlightInstalled 函数。但在用户从以���的版本升级 Silverlight 时,将不会发生上述调用。在这种情况下,用户必须重新启动浏览器。
您通常将使用 isBrowserRestartRequired 函数确定是否需要升级,然后显示相应消息。
默认 onSilverlightInstalled 函数将刷新浏览器窗口。您可以在网页的 onLoad 事件的处理程序中替换此行为。可以通过将该函数设置为 null,禁用自动刷新;或者,可以将其设置为您自己的函数。例如,代替刷新浏览器,您可以使用 createObject 或 createObjectEx 将新的 HTML object 元素直接插入您的网页。这样,无需浏览器刷新便可以嵌入新安装的插件。
WaitForInstallCompletion:
新的 Silverlight 安装要求浏览器刷新,以便网页可以加载 Silverlight 插件。但是,Silverlight 升级要求浏览器重新启动,而不仅是刷新。
在您使用 Silverlight.js 时,如果该页面加载并且用户尚未安装 Silverlight,则默认调用 WaitForInstallCompletion 函数。在新的 Silverlight 安装完成后,WaitForInstallCompletion 函数将调用 onSilverlightInstalled 函数来刷新浏览器。您可以使用自己的函数替换 onSilverlightInstalled,以便禁用或自定义此行为。
MSDN:http://msdn.microsoft.com/zh-cn/library/cc838126(VS.95).aspx