webbrowserコントロールでclass=css-wide-010のボタンを押したい


ロビタ  2004-07-03 23:52:33  No: 114483  IP: [192.*.*.*]

はじめたばかりの初心者です。
OS = XP
VB 6.0
上でwebbrowserコントロール上のボタンが
<INPUT class=css-wide-010 type=submit value="  OK  ">
という表記なのですが、どうやらclass=css-wide-010 のせいで
Clickイベントが使えないらしいのです。

あまりにも無知な質問かもしれませんが、このようなボタンを押すには
どのようにしたらよいのでしょうか?よろしくお願いします。

編集 削除
ロビタ  2004-07-04 00:29:37  No: 114484  IP: [192.*.*.*]

すみません、上記のボタンが含まれてるフォーム表記に

<FORM name=FORM1 onsubmit="return Chk();" action=pw_090_i.cgi method=post>

こんなのがあったんですが、なんとなく重要な気がして…

どなたかご教授ください。よろしくお願いします。

編集 削除
マグ  2004-07-04 10:27:16  No: 114485  IP: [192.*.*.*]

<FORM name=FORM1 onsubmit="return Chk();" action=pw_090_i.cgi method=post>
<INPUT class=css-wide-010 type=submit value="  OK  ">
</FORM>

で出来るのではないでしょうか?
一度もやったことがないのでこれに関しては
ちょっと、不安なんですけど・・・
たしか、記憶ではこの組み合わせで出来たと思います。

onsubmit="return Chk();" はinputのsubmitボタンが押されたら実行
そして、アドレスはaction=pw_090_i.cgi だったと思います。

編集 削除
ロビタ  2004-07-04 21:32:03  No: 114486  IP: [192.*.*.*]

マグ様ありがとうございます。
少し説明が足りなかったようです。

上記の<>文はwebbrowserコンロトールに現れるページのHTMLでページ上にOKボタンがあり、
それをVB上で自動で押させたいのです。

Set objTables = Me.WebBrowser1.Document.getElementsByTagName("TABLE")
        Debug.Print "TABLEの数:", objTables.length
        If objTables.length < 2 Then
            Exit Sub
        Else
        If objTables.length > 2 Then
        Set objTable = objTables(2)
        End If
        End If
        
        
        .Document.Forms(0).elements(7).Click


こんな感じで書いたのですが普通のボタンですとこれでいけるのですが、やはりおそらくCSSのせいで
うまくいきません。CSSの知識がないのがいけないのだと思いますが、どのように書いたらいいのでしょうか。

編集 削除
マグ  2004-07-05 09:01:52  No: 114487  IP: [192.*.*.*]

私もwebbrowserコントロールをそんなに使ったことがないのでよく、わかりませんが・・・

CSSはスタイルシートと呼ばれ、レイアウト役です。
javascript見たいに動かす方のタイプではないですけどね・・・
よって、CSSはおそらく、影響がないと思います。

編集 削除
nanashi  2004-07-05 11:06:41  No: 114488  IP: [192.*.*.*]

未確認ですが、そのボタンがsubmitなら

> .Document.Forms(0).elements(7).Click

の部分を

  .Document.Forms(0).submit()

にしてみてはいかがでしょう?

編集 削除
魔界の仮面弁士  2004-07-05 11:42:24  No: 114489  IP: [192.*.*.*]

>> Clickイベントが使えないらしいのです。
「clickメソッド」の事でしょうか? それとも
「onclickイベント」の事でしょうか?


>  .Document.Forms(0).elements(7).Click
「document.FORM1.submit」、または、getElementsByNameメソッドを使って
「document.getElementsByName("FORM1").item(0).submit」だと如何でしょう。


>  If objTables.length < 2 Then
>      Exit Sub
>  Else
>      If objTables.length > 2 Then
>          Set objTable = objTables(2)
>       End If
>  End If

.length = 2 の時の処理が抜けていますよ。

それと、今回のようにElse句に条件が続く時は、
  If 条件1 Then
     '
  Else
     If 条件2 Then
        '
     End If
  End If
ではなく、
  If 条件1 Then
     '
  ElseIf 条件2 Then
     '
  End If
の方が一般的かと思いますよ。


>> CSSのせいでうまくいきません。
私もマグさんと同意見で、CSSの指定自体は動作に影響を与える事は無いと思います。
onsubmitイベントに記述がある場合は、submitメソッドの方で試してみてください。
http://madia.world.coocan.jp/vb/vb_bbs/200309_03090009.html

編集 削除