silverlight.js详解.

原文:Understanding the silverlight.js helper class and silverlight object creation

微软公司的Silverlight是一个浏览器的插件,就像Adobe公司的Flash一样.在Silverlight SDK中提供了一个帮助创建Silverlight对象的Silverlight.js文件.在你调用javascript文件是你可能会发现在客户端已经安装silverlight时会生成一段html代码.

如要需要了解这个js文件都做了什么,我们需要把它分解开来研究.在这个js文件中一共有11个方法.

01. Silverlight.detectUserAgent(); 02. Silverlight.isInstalled(d); 03. Silverlight.createObject(l,g,m,j,k,i,h); 04. Silverlight.supportedUserAgent(); 05. Silverlight.buildHtml(c,d); 06. Silverlight.default_error_handler(e,b); 07. Silverlight.createObjectEx(b); 08. Silverlight.buildPromptHTML(l); 09. Silverlight.__cleanup(); 10. Silverlight.followFWLink(a); 11. Silverlight.HtmlAttributeEncode(c);

你可能会注意到这些方法的参数不是很明确.这是因为Microsoft公司需要把js文件做的尽可能的小.所以呢,他去除了长的名称,空格,换行等是这个js文件代码都写在1行里.这样不太利于了解,但是却给了快速的加载.

要创建Silverlight对象.我们可以看在Silverlight 1.0 SDK中的CreateSilverlight.js文件.他用了上边所提到的第三个方法Silverlight.createObject(l,g,m,j,k,i,h)和第七个方法Silverlight.createObjectEx(b)这第七个方法接受的参数是一个数组,我想Ex大概就是扩展的意思吧.

看着代码文件和注释文件可以看出他们所代表的意思.

l= xaml source file g= parent hosting element m= silverlight control id j= properties k= events i= initParams h= context

这个createObjectEx方法只是调用的createObject方法,也没什么特别的.

这个createObject方法调用了createObjectEx传递进来的参数.

  1. 调用Silverlight.isInstalled(version)方法来判断silverlight的版本是否已经被安装.版本的名称就是j这个参数.
  2. 加载Silverlight.__cleanUp()方法来注销windows事件
  3. 加载onload和onerror方法.(参数为k)
  4. 调用Silverlight.BuildHtml(a,b)方法来生成silverlight对象的html
  5. 如果Hosting不为空就把生成的html加入Hosting中否则的话就返回生成好的代码.

最后一行代码很有趣,如果你想控制已经生成好的html那你可以传递一个null来代替hosting元素来得到生成好的html.如果我们看到了生成好的html,我们可以发现一个正常的object标签.如果你用Safari浏览器你会看到一个embed标签.因为safari不完全的支持object标签.

这个初始化参数是可以选择的,你可以添加自己定义的参数.刚开始看上去感觉是有点怪异的,但是这个javascript代码是用来生成html的.这个特性是非常有用的. 举个例子: sitename=wpfdevelopment,url=www.wpfdevelopment.com.

生成的html代码就会带这样的参数: <object> <param name=”initParams” value=”param1,param2,param3″ /> </object>

Safari浏览器是这样:

<embed initParams=”param1,param2,param3″ />

这个初始参数会被javascript生成在silverlight对象中.举个例子:silverlightControlId.InitParams会返回一个初始参数的列表.

这第二个参数为上下文参数,这个参数允许事件的调用.举个例子,如果你有一个在onload是需要调用的事件:

events: {onLoad: onLoadFunction }

function onLoadFunction(control,context,rootElement) { //do something }

这个事件可以用在onLoad或onError时候.只要在events(k)时传递进去就可以了.

剩下的参数j是一个数组.可以对很多的属性进行设置.

  1. background=背景颜色,默认为白色
  2. isWindowless=布尔值.是否透明
  3. width=宽度
  4. height=高度
  5. ignoreBrowserVer=忽略silverlight插件是否已经在当前的浏览器中安装.默认为false
  6. maxFramerate=最大的帧数,默认为24帧每秒.
  7. version=silverlight插件版本.

相关文章:

  1. 向silverlight传递自定义参数
  2. 有趣 不用js也能创建silverlight

nasa nasa.cnblogs.com nasa_wz@hotmail.com 12446006

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 44 Amazing Silverlight 2.0 Screencasts

    Silverlight - Hello World Silverlight - Anatomy of an Application Silverlight - ...

    用户1172164
  • Silverlight SEO优化

    Silverlight SEO优化 SEO优化 2008年10月份,微软发布了针对Silverlight应用程序进行搜索引擎优化的指导文档,该文档描述了对Si...

    用户1172164
  • 基于Cairngorm的Silverlight开发系列

    最近做了几个silverlight的项目都用到了MVC的开发架构,在silverlight中,MVC、MVVM等架构都很多。各个第三方的公司在推出自己的架构的同...

    用户1172164
  • httpclient4.5如何确保资源释放

    更新:releaseConnection()这个方法已经不再推荐了,我用的httpclient4.5的jar包,不需要对request进行这个操作了,看官方文档...

    八音弦
  • 【学习】在R语言中使用正则表达式

    有时候我们要处理的是非结构化的数据,例如网页或是电邮资料,那么就需要用R来抓取所需的字符串,整理为进一步处理的数据形式。R语言中有一整套可以用来处理字符...

    小莹莹
  • PHP 正则表达式抓取网页内容。

    我想用php抓取爱奇艺生活类型视频网页里面的元素,应该如何去做呢? 首先我要非常熟悉正则表达式,关于正则表达式的学习,我会写一篇博客一直学习的。 直接举例子: ...

    ShenduCC
  • haproxy实现mysql双主高可用的详细过程

    http://pkgs.fedoraproject.org/repo/pkgs/haproxy/haproxy-1.7.9.tar.gz

    菲宇
  • 从Facebook和谷歌“安全门”说起:SD-WAN的“奶酪”与“陷阱”

    9月28日,黑客利用Facebook的安全漏洞窃取了与用户个人资料相关的安全令牌,导致近5000万用户的账户遭到了破坏;10月9日,Google宣布关闭旗下社交...

    SDNLAB
  • 深入浅出Shiro系列——权限认证

    授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象:主体(Subject)、资源(Resou ...

    用户7544680
  • 写给设计师的人工智能指南:Tensorflow快速入门

    以下为正文 Tensorflow的环境,我采用的是Docker搭建的。 Docker通常用于如下场景: web应用的自动化打包和发布; 自动化测试和持续集成...

    mixlab

扫码关注云+社区

领取腾讯云代金券