Silverlight 與 HTML 網頁的互動

*** Silverlight 技術養成顧問系列- HTML/JavaScript 篇 ***
Silverlight 本身透過外掛的型式嵌入網頁中,但是在 HTML網 頁中, Sivlerlihgt 並非一座孤島,若是你己經習慣透過 DOM 與 JavaScript 來處理網頁 UI 元素, Silverlight 同樣提供了與 HTML 互動的相關支援,讓你可以直接從 Silverlight 撰寫後置程式碼與 HTML 元素進行溝通,而這個支援是雙向的,意謂著你也可以直接於網頁寫下 JavaScript ,操作 Silverlight 元素。

如果你已經有現成的 HTML 網頁,想要整合 Silverligth 技術,並且讓它與網頁網頁進行溝通,這些功能可以讓你輕易的達到與 HTML 網頁互動的目的,甚至操作其中的網頁元素。

相較於ASPNET, Silverlight 是一種非常純粹的客戶端技術,它與HTML網頁同樣均位於客戶端的環境底下執行,因此它與網頁的互動要比 ASP.NET 來得容易,而提供相關功能的類別,均封裝於System.Windows.Browser 命名空間。

System.Windows.Browser 命名空間提供了兩個用來存取以及維護DOM的類別,HtmlPage 與 HtmlDocument ,前者允許 Silverlight 能夠執行瀏覽器的DOM存取操作,後者用來表示瀏覽器中的 HTML文件。舉凡存取HTML元素物件(例如 input ),指派事件,甚至觸發網頁的 Submit 事件,都可以透過HtmlDocument 類別所提供的方法,取得所需的HTML元素以執行特定的作業,它是存取維護DOM最主要的功能類別。 HtmlDocument 並沒有建構式,我們透過 HtmlPage的HtmlDocument 屬性取得此物件,它是一個唯讀靜態成員,定義如下:

 public static HtmlDocument Document { get; }

以下的程式碼取得可用的 HtmlDocument 物件,如此一來便能夠執行各種DOM相關的維護作業。

 HtmlDocument htmldoc = HtmlPage.Document;

HtmlPage 包含數個可用的屬性,分別用來取得具備與瀏覽器網頁互動的功能類別,這些屬性成員列舉說明如下:
  • BrowserInformation:用來取得瀏覽器的一般資訊,例如名稱、版本以及作業系統等等。
  • Document:取得瀏覽器文件物件。
  • IsEnabled:取得值,指出 HTML 橋接功能的其餘公用介面區是否已啟用。
  • Plugin:取得Silverlight控制項元素的參照。
  • Window:取得瀏覽器視窗物件。

這些屬性相當有用,它們回傳特定的功能物件,無論瀏覽器的一般資訊或是複雜的DOM文件存取,都可以進一步的經由這些物件進行存取。

下一次,我們來看一些簡單的範例。:)

沒有留言: