VB6如何使用WebBrowser?

时间:2021-04-29 23:14:45
偶想请教一下如何使用WebBrowser控件?
偶用的是VB6.
当执行WebBrowser1.Document.All(0)时总会提示"对象不支持该属性或方法"
而且在写到WebBrowser1.Document时,打了"."之后也没有列表弹出来让我选择,好像
Document真的没有任何属性和方法啊?

偶在CSDN看到好多关于WebBrowser的帖子,但好像大家都没这个问题呢~~
真是郁闷死了~~
求各路高手帮帮忙~~谢谢谢谢~~

8 个解决方案

#1


WebBrowser1.Document仅在ReadyState属性为完成时才可以访问。参见http://support.microsoft.com/kb/180366。
WebBrowser1.Document是一个后期绑定对象。因为它可能是一个HTML文档、一个文件夹视图对象、一个Word文档或者一个Adobe Acrobat PDF文档,所以它的类型在编译时是不能被确定的,智能感知也不可能给你任何提示。
如果你预先知道WebBrowser1.Document的类型(例如用程序来控制浏览器控件所浏览的文件),那么你可以引用对应的类型库,然后把WebBrowser1.Document转换成你已经知道的类型。

#2


感谢楼上~~
但是能不能举个例子?
例如在百度的搜索栏输入“abc”,再点搜索~~
需要强调的是,偶是用VB6,跟.net不同的吧~~
多谢多谢~~

#3


在BAIDU网页的源代码里面有这样的一行:

<form name=f action=http://www.baidu.com/s>

<input type=text name=wd class=kw size=36 maxlength=100>
<script>document.f.wd.focus();g()</script>
<input type=hidden name=cl value=3>  
<input type=submit value=百度一下 class=sb><br><br></form>

现在您只要写出这样的语句:webbrowser1.document.all.item("cl",0).value="abc" ,这样BAIDU网页里那个文字框就会自动写入abc,然后您再写入这样的语句:webbrowser1.document.all.form("f",0).submit ,这样,网页就会自动提交数据进行搜索.下面给出完整代码

在WebBrowser1_DocumentComplete事件里写入以下语句:

if url="http://www.baidu.com/" then
   webbrowser1.document.all.item("cl",0).value="abc"
   webbrowser1.document.all.form("f",0).submit
end if 

#4


WebBrowser控件很多方法都是异步的,也就是说一个执行了这个动作无论有没有做完都会立即执行下一行代码。所以在操作Document时一定要确认某一个异步操作是否完成。如:

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    
    If pDisp Is WebBrowser1.Document Then       ' 全部加载完毕
        WebBrowser1.Document.All.Item("cl", 0).Value = "abc"
        WebBrowser1.Document.All.Form("f", 0).submit
    End If
    
End Sub

另外,如果访问的是html,可以引用Microsoft HTML Object Library库,WebBrowser.Document类型就是其中的HTMLDocument类。

#5


楼上两位的代码,偶试了,但是……
WebBrowser1.Document.All.Item("cl", 0).Value = "abc" '还是不能将abc写到搜索栏啊
WebBrowser1.Document.All.Form("f", 0).submit '会报错,又是"不支持该属性或方法"

-_-! 郁闷中~~大家帮忙分析分析吧~~~
其他人都没有遇到这个问题吗?

#6


看看http://www.evict.nl/open_source.asp
里面有几个优秀的关于WebBrowser的例子和Source Code。

#7


Dim doc As IHTMLDocument2

    Set doc = WebSky.Document
    
    Dim tmp As String
    
    isFirst = True

    doc.All.Item("Uname").Value = Trim(txtUser.Text)

    doc.All.Item("PWD").Value = Trim(txtPwd.Text)

    '附加码
    doc.All.Item("code").Value = Trim(txtCode.Text)
    
    doc.Forms.Item(0, 0).submit

#8


我上面代码是一个完整程序中的一小部分,你可以参考一下.
doc.Forms.Item(0, 0)这类的,一般来说,写上ID名称更好点,除非你知道这(0,0)个就是你想要的.

因为你访问是html,所以必须如楼上fj182(阿花)所说的:
如果访问的是html,可以引用Microsoft HTML Object Library库,WebBrowser.Document类型就是其中的HTMLDocument类。

#1


WebBrowser1.Document仅在ReadyState属性为完成时才可以访问。参见http://support.microsoft.com/kb/180366。
WebBrowser1.Document是一个后期绑定对象。因为它可能是一个HTML文档、一个文件夹视图对象、一个Word文档或者一个Adobe Acrobat PDF文档,所以它的类型在编译时是不能被确定的,智能感知也不可能给你任何提示。
如果你预先知道WebBrowser1.Document的类型(例如用程序来控制浏览器控件所浏览的文件),那么你可以引用对应的类型库,然后把WebBrowser1.Document转换成你已经知道的类型。

#2


感谢楼上~~
但是能不能举个例子?
例如在百度的搜索栏输入“abc”,再点搜索~~
需要强调的是,偶是用VB6,跟.net不同的吧~~
多谢多谢~~

#3


在BAIDU网页的源代码里面有这样的一行:

<form name=f action=http://www.baidu.com/s>

<input type=text name=wd class=kw size=36 maxlength=100>
<script>document.f.wd.focus();g()</script>
<input type=hidden name=cl value=3>  
<input type=submit value=百度一下 class=sb><br><br></form>

现在您只要写出这样的语句:webbrowser1.document.all.item("cl",0).value="abc" ,这样BAIDU网页里那个文字框就会自动写入abc,然后您再写入这样的语句:webbrowser1.document.all.form("f",0).submit ,这样,网页就会自动提交数据进行搜索.下面给出完整代码

在WebBrowser1_DocumentComplete事件里写入以下语句:

if url="http://www.baidu.com/" then
   webbrowser1.document.all.item("cl",0).value="abc"
   webbrowser1.document.all.form("f",0).submit
end if 

#4


WebBrowser控件很多方法都是异步的,也就是说一个执行了这个动作无论有没有做完都会立即执行下一行代码。所以在操作Document时一定要确认某一个异步操作是否完成。如:

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    
    If pDisp Is WebBrowser1.Document Then       ' 全部加载完毕
        WebBrowser1.Document.All.Item("cl", 0).Value = "abc"
        WebBrowser1.Document.All.Form("f", 0).submit
    End If
    
End Sub

另外,如果访问的是html,可以引用Microsoft HTML Object Library库,WebBrowser.Document类型就是其中的HTMLDocument类。

#5


楼上两位的代码,偶试了,但是……
WebBrowser1.Document.All.Item("cl", 0).Value = "abc" '还是不能将abc写到搜索栏啊
WebBrowser1.Document.All.Form("f", 0).submit '会报错,又是"不支持该属性或方法"

-_-! 郁闷中~~大家帮忙分析分析吧~~~
其他人都没有遇到这个问题吗?

#6


看看http://www.evict.nl/open_source.asp
里面有几个优秀的关于WebBrowser的例子和Source Code。

#7


Dim doc As IHTMLDocument2

    Set doc = WebSky.Document
    
    Dim tmp As String
    
    isFirst = True

    doc.All.Item("Uname").Value = Trim(txtUser.Text)

    doc.All.Item("PWD").Value = Trim(txtPwd.Text)

    '附加码
    doc.All.Item("code").Value = Trim(txtCode.Text)
    
    doc.Forms.Item(0, 0).submit

#8


我上面代码是一个完整程序中的一小部分,你可以参考一下.
doc.Forms.Item(0, 0)这类的,一般来说,写上ID名称更好点,除非你知道这(0,0)个就是你想要的.

因为你访问是html,所以必须如楼上fj182(阿花)所说的:
如果访问的是html,可以引用Microsoft HTML Object Library库,WebBrowser.Document类型就是其中的HTMLDocument类。