silverlight.js详解.

简介: 原文:Understanding the silverlight.js helper class and silverlight object creation 微软公司的Silverlight是一个浏览器的插件,就像Adobe公司的Flash一样.
原文: 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

相关文章
|
Web App开发 JavaScript 安全
有趣 不用js也能创建silverlight
如果你已经安装了silverlight并能在IE7或Firefox 2中运行,请直接复制下边的代码存成.htm来浏览。                                                      No Javascript, wheeeee!!!                                                         silverlight只是浏览器的为了呈现xaml的一个插件,不一定非要JavaScript。
793 0
|
Web App开发 移动开发 前端开发
LightGallery.js – 功能齐全的 Javascript Lightbox
  Lightgallery是一个轻量级的模块化、响应式的灯箱画廊,它允许您创建美丽的图像和视频画廊。借助缩略图插件的帮助,Lightgallery 允许您创建缩略图画廊。它支持触摸屏设备上滑动导航以及桌面设备的鼠标拖动,还允许用户浏览缩略图和原图之间通过滑动手指或鼠标拖动。
1550 0
|
XML JavaScript 前端开发
网页编程三剑客之JS
JavaScript基础部分介绍(简洁明了)
|
前端开发 JavaScript
JavaScript 文件拖拽上传插件 dropzone.js 介绍
dropzone.js 是一个开源的 JavaScript 库,提供 AJAX 异步上传功能。 安装 下载dropzone.js文件并添加到页面中即可。
2362 0
|
JavaScript 容器 CDN
JS笔记
不覆盖事件处理器 var h1aOL = window.onload; window.onload = function() { if (h1aOL) h1aOL(); h1Setup(); } 用递归代替循环实现事件冒泡 this.
698 0
|
JavaScript 索引
js笔记
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010741376/article/details/46473245 js中substr,substring,indexOf,lastIndexOf等的用法 1.substrsubstr(start,length)表示从start位置开始,截取length长度的字符串。
557 0
|
JavaScript
原声js 笔记
原声js 笔记
84 0