WebBrowserで表示したWEBのイベントを感知するには?

解決


トミー  2005-04-15 04:17:14  No: 120957

環境はVB6.0(SP5)+W2Kです
フォームにWebBrowserコントロールを貼り付けてWEBを表示させ,WEB上にある自分の指定したボタンをクリックすると,クリックしたのを感知してイベントを発生させるプログラムを作成しています。
こちらの過去ログを拝見してイベントを感知させることは成功しました。

しかし、あるHPで「ログインする」というボタンがあり下記のコードが書かれていました。

<A onmouseover="window.status='ログインする';return true;" 
onclick="InputCheck();return false;" onmouseout="window.status='';return true;" 
href="#"><IMG height="27" alt="ログインする" src="https:XXXXXXXXXXX  width="152" border="0">

このコードを見る限りボタンがイメージで作成されており,名前やIDも無いためこのボタンについては,どのようにしてこのボタンを特定して,イベントを感知すればいいのか全く検討がつきません。

どうかよろしくご指導下さい。


魔界の仮面弁士  2005-04-15 05:40:01  No: 120958

名前があろうとなかろうと、イベントの取得は可能だと思いますが……。

現在は、どのようにしてイベントを取得しようとなさっていますか?


トミー  2005-04-15 08:41:48  No: 120959

>現在は、どのようにしてイベントを取得しようとなさっていますか?
過去ログに魔界の仮面弁士様がかかれていたコードを使用させていただき
クラスモジュールを作成してDocumentCompleteイベントに

Set brwWebBrowser.Document.All.cmb1.onclick = New Class1
(cmb1が自分の指定したボタンの名前です)

としています。


トミー  2005-04-15 09:15:35  No: 120960

追加ですいません。
先程送信した内容は今までイベントを感知してた方法です。

「フォームにWebBrowserコントロールを貼りつけて・・・」と申し上げましたが
今現在はフォームを追加するのにフォームモジュールの追加で「Webブラウザ」を
選択してそのフォームを利用しています。

よろしくお願いします


魔界の仮面弁士  2005-04-15 18:08:35  No: 120961

> Set brwWebBrowser.Document.All.cmb1.onclick = New Class1
「Document.all.アイテム名」ではなく、
「Document.getElementsByTagName(タグ名)(連番)」を利用するとか。


トミー  2005-04-19 08:23:35  No: 120962

>「Document.all.アイテム名」ではなく、
>「Document.getElementsByTagName(タグ名)(連番)」を利用するとか。
魔界の仮面弁士様  ご助言有難うございます。
(ご返事が大変遅くなり申し訳ございませんでした。)
ご助言いただいた後、過去ログとHTML関係の書籍を読み返し、下記の方法でIMGで作成された
ボタンのクリックを感知することが出来ました。

’イメージの連番を調べる

  Set VarObj = brwWebBrowser.Document.getElementsByTagName("IMG")
  
  Max = VarObj.length

  For n = 0 To Max - 1
          MsgBox VarObj.Item(n).alt & n
  NEXT

’目的のボタン(イメージ)をクリックする

  Private Sub brwWebBrowser_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    
        Set brwWebBrowser.Document.getElementsByTagName("IMG")(2).onclick = New Class1

  End Sub

有難うございました。


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




  


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