方法 : マネージ HTML DOM (Document Object Model) にアクセスする
更新 : 2007 年 11 月
マネージ HTML DOM (Document Object Model) には、次の 2 種類のアプリケーションからアクセスできます。
マネージ WebBrowser コントロールをホストする Windows フォーム アプリケーション (.exe)。この 2 つのテクノロジは相互に補完します。つまり、WebBrowser コントロールはユーザーに対してページを表示し、HTML DOM はドキュメントの論理構造体を表します。
Internet Explorer 内でホストされた Windows フォーム UserControl。UserControl をホストするページを表す HTML DOM にアクセスして、ドキュメントの構造体を変更したり、モーダル ダイアログ ボックスを開いたりするなど、さまざまな操作を行うことができます。
Windows フォーム アプリケーションから DOM にアクセスするには
Windows フォーム アプリケーション内で WebBrowser コントロールをホストし、DocumentCompleted イベントを監視します。コントロールのホストとイベントの監視の詳細については、「イベントの利用」を参照してください。
WebBrowser コントロールの Document プロパティにアクセスして、現在のページの HtmlDocument を取得します。
Internet Explorer でホストされた UserControl から DOM にアクセスするには
UserControl クラスのカスタム派生クラスを作成します。詳細については、「方法 : 複合コントロールを作成する」を参照してください。
UserControl の Load イベント ハンドラ内に次のコードを配置します。
Private Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If (Me.Site IsNot Nothing) Then
Dim Doc As HtmlDocument = CType(Me.Site.GetService(Type.GetType("System.Windows.Forms.HtmlDocument")), HtmlDocument)
End If
End Sub
HtmlDocument doc = null;
private void UserControl1_Load(object sender, EventArgs e)
{
if (this.Site != null)
{
doc = (HtmlDocument)this.Site.GetService(typeof(HtmlDocument));
}
}
堅牢性の高いプログラム
- WebBrowser コントロールを通じて DOM を使用するときは、必ず DocumentCompleted イベントが発生するまで待機してから WebBrowser コントロールの Document プロパティにアクセスするようにします。DocumentCompleted イベントは、ドキュメント全体が読み込まれた後で発生します。それ以前に DOM を使用すると、アプリケーション内でランタイム例外が発生する恐れがあります。
セキュリティ
- アプリケーションまたは UserControl がマネージ HTML DOM にアクセスするには、完全信頼が必要です。ClickOnce を使用して Windows フォーム アプリケーションを配置するときは、"アクセス許可の昇格" または "信頼されたアプリケーションの配置" を使用して完全信頼を要求できます。詳細については、「ClickOnce の配置の概要」および「ClickOnce の配置とセキュリティ」を参照してください。