vb webbrowser控件详解


vb+webbrowser控件详解

1、获得浏览器信息

private sub command1_click()
    webbrowser1.navigate ""
end sub
private sub command2_click()
    dim owindow
    dim onav
    set owindow = webbrowser1.document.parentwindow
    set onav = owindow.navigator
    debug.print onav.useragent
    set owindow = nothing
    set onav = nothing
end sub
点击command1浏览网页,点击command2在立即窗口中输出浏览器信息。

2、弹出webbrowser消息窗口

    dim owindow
    set owindow = webbrowser1.document.parentwindow
    owindow.confirm "abcd"

vb调用webbrowser技巧集2

向webbrowser中写入html内容的几种方法


首先在form_load中加入
webbrowser1.navigate "about:blank"
确保webbrowser1可用
方法1:
    dim s as string
    dim stream as istream
    s = "hello world "
    webbrowser1.document.write s
方法2:
    dim o
    set o = webbrowser1.document.selection.createrange
    debug.print o
    if (not o is nothing) then
        o.pastehtml "哈哈"
        set o = nothing
    end if
方法3:
'插入文本框
    dim o
    set o = webbrowser1.document.selection.createrange
    o.execcommand "inserttextarea" false "xxx"

vb调用webbrowser技巧集3

1、页面滚动:

private sub command2_click()
    webbrowser1.document.parentwindow.scrollby 0 30
end sub
private sub form_load()
    webbrowser1.navigate ""
end sub
点击command2就可以使当前页面向下滚动30像素

2、判断页面是否可以前进后退

private sub command1_click()
    webbrowser1.goforward
end sub
private sub command2_click()
    webbrowser1.goback
end sub
private sub form_load()
    webbrowser1.navigate ""
end sub
private sub webbrowser1_commandstatechange(byval command as long byval enable as boolean)
    if (command = csc_navigateback) then
        command2.enabled = enable
    end if
    if (command = csc_navigateforward) then
        command1.enabled = enable
    end if
end sub

 

vb调用webbrowser技巧集4

1、如何使网页不出现滚动条:

private sub mnuscroll1_click()
        @#注意:必须在网页完全显示之后才可以运行
    webbrowser1.document.body.scroll = "no" @#不显示滚动条的办法
end sub
private sub mnuscroll2_click()
        @#注意:必须在网页完全显示之后才可以运行
    webbrowser1.document.body.scroll = "auto" @#显示滚动条的办法
end sub

2、如何获得网页中被选中部分的html:

private sub command1_click()
    dim objselection
    dim objtxtrange
    set objselection = webbrowser1.document.selection
    if not (objselection is nothing) then
        set objtxtrange = objselection.createrange
        if not (objtxtrange is nothing) then
            debug.print objtxtrange.htmltext
            set objtxtrange = nothing
        end if
        set objselection = nothing
    end if
end sub
private sub form_load()
    webbrowser1.navigate ""
end sub

 

navigate 方 法 的 语 法 格 式 为:
    webbrowser1.navigate     url
    [flags][targetframename][postdata][headers]

webbrowser 控件支持的主要方法有:

goback———回退到上一屏。
goforward———进入到下一屏。
gohome———回家。即回到主页。
stop———停止导航。
refresh———刷新。
navigate———导航。

webbrowser控件所响应的事件:

 beforenavigate事件 ———在开始导航前发生。一般在此获取完整的url字符串。
 webbrowser控件 最主要的参数:
 url ———获得导航用的标准url字符串。例如:它能将””自动翻译为””

使用webbrowser的navigator或者navigator2方法打开一个asp文档并且传递 参数进去,但是asp文档无法获得参数,请教是什么原因? vb源码:
private sub cmdsubmit_click()
    dim strurl as string, strformdata as string
    dim strdata as string
    strurl = trim$(txturl.text)
    strformdata = "name=" & trim$(txtname.text) & "&password=" &trim$(txtpassword.text)
    call wbtest.navigate2(strurl 64 "_blank" strformdata "hello")
end sub

asp源码:
*********************************************************************
option explicit
private sub command1_click()
    dim szvalue as string
    webbrowser1.document.body.innerhtml = "method=post action=http://地址/xxx.php>"
    webbrowser1.document.forms("post").submit
end sub
private sub form_load()
    webbrowser1.navigate2 "about:blank"
end sub
 
********************************************************************
请问:在webbrwoser控件里提供的navigate或者navigate2方法中提供了传递数据的参数,调用方式为:
    webbrowser1.navigate2(url[flags] [targetframename][postdata][headers])
  其中postdata参数就是一个提交参数字符串,例如"name=aaa&password=123",
但问题是为什么这个方法并不是有效的,服务器端不能取得数据? 如果这个方法是有效的话就不需要用一段html代码模拟这种调用了。
下面代码能检测出程序post出去的消息
private sub webbrowser1_beforenavigate2(byval pdisp as object,url as variant,flags as variant,targetframename as variant,postdata as variant,headers as variant,cancel as boolean)
    msgbox postdata
end sub

webbrowser的8个方法和13个属性 

WebBrowser 参数原型:

    WebBrowser1.Navigate [Flags,][TargetFrameName,][PostData,][Headers]

 

WebBrowser的8个方法和13个属性,以及它们的功能:

方法

说明

GoBack

相当于IE的“后退”按钮,使你在当前历史列表中后退一项。

GoForward

相当于IE的“前进”按钮,使你在当前历史列表中前进一项。

GoHome

相当于IE的“主页”按钮,连接用户默认的主页。

GoSearch

相当于IE的“搜索”按钮,连接用户默认的搜索页面。

Navigate

连接到指定的URL

Refresh

刷新当前页面。

Refresh2

同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,该表定义在ExDisp.h中,可以指定的不同值如下: 
REFRESH_NORMAL 执行简单的刷新,不将HTTP pragma: no-cache
头发送给服务器。
REFRESH_IFEXPIRED 只有在网页过期后才进行简单的刷新。
REFRESH_CONTINUE 仅作内部使用。在MSDN里写着DO NOT USE! 请勿使用。
REFRESH_COMPLETELY 将包含pragma: no-cache头的请求发送到服务器。

Stop

相当于IE的“停止”按钮,停止当前页面及其内容的载入。

属性

说明

Application

如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser控件的自动化对象。

Parent

返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口。

Container

返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同。

Document

为活动的文档返回自动化对象。如果HTML当前正被显示在WebBrowser中,则Document属性提供对DHTML Object Model的访问途径。

TopLevelContainer

返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true

Type

返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返回Microsoft Word Document

Left

返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离。

Top

返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离。

Width

返回或设置WebBrowser窗口的宽度,以像素为单位。

Height

返回或设置WebBrowser窗口的高度,以像素为单位。

LocationName

返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称。

LocationURL

返回WebBrowser当前正在显示的资源的URL

Busy

返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true就可以使用stop方法来撤销正在执行的访问操作。

 

WebBrowser 的事件:

Private Events

(私有活动) 

Description (描述)

BeforeNavigate2

导航发生前激发,刷新时不激发。

CommandStateChange

当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward菜单项或按钮。

DocumentComplete

当整个文档完成是激发,刷新页面不激发。

DownloadBegin

当某项下载操作已经开始后激发,刷新也可激发此事件。

DownloadComplete

当某项下载操作已经完成后激发,刷新也可激发此事件。

NavigateComplete2

导航完成后激发,刷新时不激发。

NewWindow2

在创建新窗口以前激发。

OnFullScreen

当FullScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)

OnMenuBar

改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。VARIANT_TRUE是可见,VARIANT_ FALSE是隐藏。

OnQuit

无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发。

OnStatusBar

与OnMenuBar调用方法相同,标示状态栏是否可见。

OnToolBar

调用方法同上,标示工具栏是否可见。

OnVisible

控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数。

StatusTextChange

如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏。

TitleChange

Title有效或改变时激发。

 

如何利用 webbrowser 控件显示 .gif 动画?

要有一定的网页知识(html、javascript、css) 注意细节:
没有"滚动条"和"鼠标右键弹出的 ie 上下文菜单"".htm 源文件" ...
我写了一个效果还真不错!
'objects: form1、command1、commondialog1、webbrowser1
option explicit
private sub command1_click()
    commondialog1.showopen
  if vba.len(vba.trim(commondialog1.filename)) >0 then
    dim p as stdole.stdpicture
    dim spath as string
    spath = vba.trim(vba.trim(commondialog1.filename))
    set p = vb.loadpicture(spath)
    webbrowser1.width = p.width * 16 / 26
    webbrowser1.height = p.height * 16 / 26
        ' webbrowser1.navigate "about:blank"
    webbrowser1.document.open
    webbrowser1.document.writeln ""
    webbrowser1.document.writeln "webbrowser1.document.writeln " 
    webbrowser1.document.writeln ""
  end if
end sub
private sub form_load()
    command1.caption = "&open"
    webbrowser1.navigate "about:blank"
    webbrowser1.document.open
    webbrowser1.document.writeln ""
    webbrowser1.document.writeln "webbrowser1.document.writeln ""
    webbrowser1.document.writeln ""
    webbrowser1.document.close
end sub

webbrowser 的事件

beforenavigate2   导航发生前激发,刷新时不激发
commandstatechange  当命令的激活状态改变时激发。它表明何时激活或关闭back和forward菜单项或按钮
documentcomplete   当整个文档完成是激发,刷新页面不激发
downloadbegin   当某项下载操作已经开始后激发,刷新也可激发此事件
downloadcomplete 当某项下载操作已经完成后激发,刷新也可激发此事件
navigatecomplete2 导航完成后激发,刷新时不激发
newwindow2    在创建新窗口以前激发
onfullscreen   当fullscreen属性改变时激发。该事件采用varient_bool的一个输入参数来指示ie是全屏显示方式(varient_true)还是普通显示方式(varient_false) onmenubar 改变menubar的属性时激发,标示参数是varient_bool类型的。 variant_true是可见,variant_ false是隐藏
onquit   无论是用户关闭浏览器还是开发者调用quit方法,当ie退出时就会激发
onstatusbar 与onmenubar调用方法相同,标示状态栏是否可见。
ontoolbar  调用方法同上,标示工具栏是否可见。
onvisible  控制窗口的可见或隐藏,也使用一个varient_bool类型的参数
statustextchange  如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏
titlechange  title有效或改变时激发

webbrowser 技巧(收藏)

看到很多关于webbrowser控件禁止右键的提问,回复的方法很多,其中有提到使用微软提供的webbrowser扩展com服务器对象(wbcustomizer.dll),但是该方法在我们想使用webbrowser编辑网页(webbrowser1.document.execcommand editmode)的时候有很多弊端,比如不能显示选中的文本等。另有些方法也就不用一一列举了。
这儿我想提到的是关于mshtml.htmldocument 引用microsoft html object library
rem #窗体代码#
    dim withevents m_dom as mshtml.htmldocument
private function m_dom_oncontextmenu() as boolean
    m_dom_oncontextmenu = false
end function
private sub webbrowser1_downloadcomplete()
    set m_dom = webbrowser1.document
end sub
rem 好了,右键菜单没有了
=======================================================================
控件调用和获得收藏夹里面
基本上用 specialfolder(6) 就可以得到收藏夹的路径 然后你可以用dir去循环读入每个目录然后dir里面的file, file的名字就是你要的收藏的名字 路径可以自己根据从上面得到的路径去得到. 如果你不用dir也可以用vb的dir控件.
  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM