Share via


マネージド HTML DOM (Document Object Model) へのアクセス

HTML ドキュメントの中には、"フレーム" で構成されるものがあります。フレームは、別個の独自の HTML ドキュメントを持つウィンドウです。 フレームを使用すると、ページ内に 1 つ以上の静的な部分 (ナビゲーション バーなど) があり、その他のフレームでは内容が常に変化するような HTML ページを簡単に作成できます。

HTML の作成者は、2 つの方法のいずれかでフレームを作成できます。

  • FRAMESET タグと FRAME タグを使用して、固定ウィンドウを作成する。

\- または -

  • IFRAME タグを使用して、実行時に移動できるフローティング ウィンドウを作成する。
  1. フレームは HTML ドキュメントを含むため、DOM (Document Object Model) においてフレームはウィンドウ要素およびフレーム要素の両方として表されます

  2. HtmlWindow の Frames コレクションを使用して FRAME タグまたは IFRAME タグにアクセスすると、フレームに対応するウィンドウ要素を取得できます。 これは、現在の URL、ドキュメント、サイズなど、フレームのすべての動的プロパティを表します。

  3. HtmlWindowWindowFrameElement プロパティ、Children コレクション、または GetElementsByNameGetElementById などのメソッドを使用して FRAME タグまたは IFRAME タグにアクセスすると、フレーム要素を取得できます。 これは、元の HTML ファイルに指定されている URL を含む、フレームの静的プロパティを表します。

フレームとセキュリティ

フレームへのアクセスが複雑なのは、マネージド HTML DOM が "クロスフレーム スクリプティング セキュリティ" と呼ばれるセキュリティ対策を実装していることによります。 異なるドメインに属する複数の FRAME を持つ FRAMESET がドキュメントに含まれる場合、これらの FRAME は相互にやり取りできません。 つまり、自分の Web サイトのコンテンツを表示する FRAME は、サード パーティのサイト (http://www.adatum.com/ など) をホストする FRAME 内の情報にアクセスできません このセキュリティは、HtmlWindow クラスのレベルで実装されます 別の Web サイトをホストする FRAME に関する一般情報 (URL など) は取得できますが、Web サイトの Document へのアクセスや、ホストしている FRAME または IFRAME のサイズや位置の変更はできません。

この規則は、Open メソッドおよび OpenNew メソッドを使用して開くウィンドウにも適用されます。 開いたウィンドウが WebBrowser コントロール内でホストされているページとは異なるドメインにある場合、そのウィンドウを移動したり、内容をチェックしたりできません。 このような制限は、WebBrowser コントロールを使用して、Windows フォーム ベースのアプリケーションの配置に使用した Web サイトとは異なる Web サイトを表示する場合にも適用されます。 ClickOnce 配置テクノロジを使用して Web サイト A からアプリケーションをインストールし、WebBrowser を使用して Web サイト B を表示した場合、Web サイト B のデータにはアクセスできません。

関連項目