您好,欢迎访问一九零五行业门户网

Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式_javascript技巧

默认情况下,生成的页面代码可能与下面的代码类似:
复制代码 代码如下:
irertranscript
我们可以给object对象传递不同的参数,如xap包的加载地址,onload或onerror事件句柄,背景色,最小版本号支持等等,完整的参数信息读者可以参考silverlight 3中param参数列表汇总。object对象中一般会包含一段标记,是用来显示当客户端浏览器未安装silverlight插件时要显示的内容的,我们可以自定义其中的内容,如:
复制代码 代码如下:
当客户端浏览器未安装silverlight插件时,程序会在相应的区域显示一张带有热区的图片,热区指向的位置是microsoft提供的silverlight安装地址。理论上,你可以指定任何的自定义代码来显示nonsilverlight的效果,但是silverlight默认没有提供低版本silverlight情况下要显示的效果,也就是lowsilverlight的情况。
silverlight可以自动实现向前兼容,也就是在低版本下编译的silverlight包可以在高版本下运行,相反,在高版本下编译的silverlight包不能再低版本下运行,此时silverlight插件会显示一张默认的图片用来告知用户升级插件,并弹出一个提示框,如下图:
个人觉得这种用户体验并非很好,试想,如果当前页面上有多个silverlight插件,岂不是要弹出多个提示框吗?那么如何来解决这个问题呢?事实上,我们除了直接在页面上添加object标记来呈现silverlight外,还可以通过javascript脚本来动态添加silverlight。silverlight.js脚本为我们提供了一系列可用的方法,详细内容大家可以参考下msdn http://msdn.microsoft.com/zh-cn/library/cc838126(v=vs.95).aspx#isinstalled
以及如何通过脚本在页面上添加silverlight,http://msdn.microsoft.com/zh-cn/library/cc265155(v=vs.95).aspx
msdn上给出了非常详细的例子来告诉我们如何使用这些脚本方法,有一点需要注意,使用silverlight.js文件时一定要与当前silverlight版本相一致,否则可能会有脚本错误,对应的silverlight.js文件可以在微软的站点上下载,你会发现其实有很多个可用的版本,其中还包括支持调试的版本哦。
createobject方法参数在使用的时候有几个问题需要注意下:
1. 参数按顺序指定,如果有不需要传递的参数可用null代替。
2. parent element参数必须指定,也就是object标记的父元素,可直接将元素的id当做对象传入,但是在firefox中不支持,此时可以使用document.getelementbyid('elementid')语句代替该参数即可。
3. param列表通过数组传递,参数名称与在object标记中使用的名称保持一致即可。
4. 事件列表如果没有对应的页面脚本则传null值,否则会报脚本错误。
5. 最后一个参数context如果不需要可以省去,不用传null或空值。
你应该注意到了,在使用createobject方法时我们可以顺便给silverlight指定nonsilverlight效果,这个是通过param列表中的althtml参数来指定的,实施上,我们在页面上直接使用object标记呈现silverlight时也可以使用alt属性来指定nonsilverlight效果,这个与在object标记中直接插入html代码的效果相同。
通过使用createobject方法,我们完全可以自定义lowsilverlight效果了,下面是一个例子:
复制代码 代码如下:
使用silverlight.isinstalled()方法可以判断客户端浏览器是否已经安装了指定版本的silverlight插件,如果已经安装了,则使用silverlight.createobject方法创建silverlight对象,否则输出自定义的内容。
这里还有一篇文章个人觉得很有用,给大家分享下吧! http://www.itstrike.cn/question/use-javascript-to-create-silverlight-object-createobject
其它类似信息

推荐信息