WebBrowser内のオブジェクトをClick時に投げれるか

解決


nori  2004-09-17 20:34:07  No: 116353

お世話になってます
WebBrowserコントロールについてお聞きします

VB6フォーム内にテキストボックス1個と
WebBrowserコントロール(以下WBCと略)をおきまして
フォームロード時にWBCには自前のHTMLファイルを表示させるとします

ここで質問なのですが
WBCに表示させているHTMLのオブジェクトをクリックするタイミングで
そのオブジェクトの値(Valueとか)がフォーム上の
テキストボックスに入力される・・ってできますでしょうか?

つまりコンテンツ内のOnclickイベントで実行される結果をVBフォーム側に
投げれるのかってことなのですが・・・

一応「Browser」でログ検索しておりますが質問が既出でしたらすみません
どなたかご教授の程宜しくお願いいたします


魔界の仮面弁士  2004-09-17 21:41:51  No: 116354

onclickイベントを取得するなら、MSHTML.TLB ファイルを参照設定して、
WithEvents 変数で受け取れば OK です。
(参照設定せずに onclick を受け取る方法もありますけれどね)

「自前のHTMLファイル」の内容がわからなかったので、ここでは
HTMLの内容を動的に生成していますが、HTMLファイルを表示させる場合も
基本的には同様で、WithEvents 変数で受け取るだけで取得できるかと。

Option Explicit

Private WithEvents Body As MSHTML.HTMLBody
Private H1 As MSHTML.HTMLHeadElement

Private Function Body_onclick() As Boolean
    H1.innerText = Format(Now(), "YYYY-MM-DD hh:mm:ss")
End Function

Private Sub Form_Load()
    WebBrowser1.Navigate2 "about:blank"
End Sub

Private Sub Form_Resize()
    WebBrowser1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    With WebBrowser1.Document
        Set Body = .Body
        Set H1 = .createElement("H1")
    End With
    H1.runtimeStyle.backgroundColor = "Window"
    Body.insertAdjacentElement "afterBegin", H1
    H1.innerText = "クリックしてください。"
    With Body.runtimeStyle
        .margin = "0px"
        .BorderStyle = "none"
        .overflow = "hidden"
        .backgroundColor = "ThreeDFace"
    End With
End Sub


nori  2004-09-17 23:53:30  No: 116355

魔界の仮面弁士さんご返答ありがとうございます
えー今、勤務中につき、頂いたソースを動作できませんが
夜には動かせると思いますので、またご返信差し上げたく思います
とりあえず、大変ありがとうございました!


nori  2004-09-18 01:31:58  No: 116356

夜まで待てずこちら頂いたソースをただいま確認しました
当方のやりたかったこととほぼおなじです

H1.innerText = Format(Now(), "YYYY-MM-DD hh:mm:ss")
に以下の文を加えさせて頂きました
me.caption = H1.innerText

後は「MSHTML」でログ検索すればソースの宝が掘れましたので十分です
ありがとうございました!!!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加