存取 Managed HTML 文件物件模型中的框架

某些 HTML 檔案是由框架 所組成 ,或視窗可以保存自己的不同 HTML 檔案。 使用框架可讓您輕鬆地建立 HTML 網頁,該 HTML 網頁的其中一個或多個頁面片段維持靜態,例如導覽列,而其他框架則不斷變更其內容。

HTML 作者可以用兩種方法之一來建立框架:

  • 使用 FRAMESETFRAME 標記,這會建立固定的視窗。

-或-

  • 使用 IFRAME 標記,這會建立可以在執行階段中重新定位的浮動視窗。
  1. 因為框架包含 HTML 文件,它們會在文件物件模型 (DOM) 中顯示為視窗項目和框架項目。

  2. 當您使用 HtmlWindow 的框架集合存取 FRAMEIFRAME 標記時,您會擷取對應至框架的視窗項目。 這代表框架的所有動態屬性,例如其目前的 URL、文件及大小。

  3. 當您使用 HtmlWindowWindowFrameElement 屬性、Children 集合,或例如 GetElementsByNameGetElementById 等方法存取 FRAMEIFRAME 標記時,您會擷取框架項目。 這代表框架的靜態屬性,包括在原始 HTML 檔案中指定的 URL。

框架和安全性

存取框架很複雜,因為受控 HTML DOM 實作稱為 跨框架腳本安全性的安全性 量值。 如果文件包含 FRAMESET 與不同網域中的兩個或更多 FRAME,這些 FRAME 無法彼此互動。 換句話說, FRAME 顯示您網站內容的 ,無法存取裝載協力廠商網站的資訊 FRAME ,例如 http://www.adatum.com/ 。 此安全性實作是屬於 HtmlWindow 類別的層級。 您可以取得關於裝載另一個網站之 FRAME 的一般資訊,例如它的 URL,但您將無法存取其 Document 或變更其裝載 FRAMEIFRAME 的大小或位置。

此規則也適用於以 OpenOpenNew 方法開啟的視窗。 如果您開啟的視窗位於與 WebBrowser 控制項中裝載頁面不同的網域,則您將無法移動該視窗,或檢查其內容。 如果您使用 WebBrowser 控制項來顯示與用來部署 Windows Form 應用程式的網站不同的網站,也會強制這些限制。 如果您使用 ClickOnce 部署技術從網站 A 安裝應用程式,而您使用 WebBrowser 來顯示網站 B,您將無法存取網站 B 的資料。

另請參閱