silverlight.js詳解
微軟公司的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程式碼就會帶這樣的引數:
Safari瀏覽器是這樣:
這個初始引數會被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外掛版本.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-567173/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- http協議/cookie詳解/session詳解HTTP協議CookieSession
- Lombok 註解詳解Lombok
- Java註解詳解Java
- Java 註解詳解Java
- Java註解最全詳解(超級詳細)Java
- HiveQL詳解Hive
- 詳解Inode
- Vuex詳解Vue
- PWA詳解
- 詳解CountDownLatchCountDownLatch
- DiffUtil詳解
- iptables詳解
- TCP詳解TCP
- CDN詳解
- Typescript詳解TypeScript
- Mybatis詳解MyBatis
- Synchronized詳解synchronized
- TLS 詳解TLS
- 詳解bind
- 詳解GOPATHGo
- HTTP 詳解HTTP
- JavaScript this詳解JavaScript
- BT詳解
- nginx 詳解Nginx
- @autowired詳解
- ECharts 詳解Echarts
- DiskBasedCache詳解
- JavaWeb詳解JavaWeb
- IndexedDB詳解Index
- BART詳解
- JDBC詳解JDBC
- Pod詳解
- HugePages詳解
- Service詳解
- Weakmap詳解
- dcokerfile 詳解
- Git詳解Git
- ARM 詳解