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传递进来的参数.
- 调用Silverlight.isInstalled(version)方法来判断silverlight的版本是否已经被安装.版本的名称就是j这个参数.
- 加载Silverlight.__cleanUp()方法来注销windows事件
- 加载onload和onerror方法.(参数为k)
- 调用Silverlight.BuildHtml(a,b)方法来生成silverlight对象的html
- 如果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是一个数组.可以对很多的属性进行设置.
- background=背景颜色,默认为白色
- isWindowless=布尔值.是否透明
- width=宽度
- height=高度
- ignoreBrowserVer=忽略silverlight插件是否已经在当前的浏览器中安装.默认为false
- maxFramerate=最大的帧数,默认为24帧每秒.
- version=silverlight插件版本.
相关文章:
nasa nasa.cnblogs.com nasa_wz@hotmail.com 12446006
- 论Spark Streaming的数据可靠性和一致性
- RGW 的GC深入解析与调优
- 大数据查询——HBase读写设计与实践
- 基于Logstash的自动化运维系统实现
- 简谈RGW的index shard计算
- Blackpearl 的 Impersonate
- SparkMLLib中基于DataFrame的TF-IDF
- 运用Python实现WordPress网站大规模自动化发布文章
- 基于java的中文分词工具ANSJ
- 基于DF的Tokenizer分词
- 基于pyenv和virtualenv搭建python多版本虚拟环境
- 基于DataFrame的StopWordsRemover处理
- 案例:Spark基于用户的协同过滤算法
- 请别再问我Spark的MLlib和ML库的区别
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- rust 模块组织结构
- PCIe例程理解(一)用户逻辑模块(接收)仿真分析
- 细品服务并发限流+Redis-cell的使用
- 在VCUTRD 2020.1 里设置HDMI-TX显示QT界面
- 稀疏数组 & 环形队列
- Spring+Mybatis+Atomikos实现分布式事务
- Android低功耗蓝牙总结
- 【云原生技术研究】 从bpftrace看如何利用eBPF实现内核追踪
- Qt多线程编程
- JavaScript中的时间与日期、正则表达式和Function类型
- JavaScript中的变量、作用域、内存问题和基本包装类型
- 【LeetCode之C#解法】 移动零、爬楼梯
- jQuery框架概述
- 久等了!Docker容器常用命令
- CentOS7下利用Ambari搭建HDP大数据平台