共用方式為


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

某些 HTML 文件包含「框架」(frame),也就是可以自行保存相異 HTML 文件的視窗。 使用框架可讓您輕鬆地建立 HTML 網頁,該 HTML 網頁的其中一個或多個頁面片段維持靜態,例如導覽列,而其他框架則不斷變更其內容。

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

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

-或-

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

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

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

框架和安全性

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

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

另請參閱