vb6如何修改vb6 webbrowserr网页中的文字?

怎样替换或者删除 webbrowser 里面的 一段 html 文字
[问题点数:30分,结帖人k]
怎样替换或者删除 webbrowser 里面的 一段 html 文字
[问题点数:30分,结帖人k]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2011年9月 总版技术专家分月排行榜第一2011年8月 总版技术专家分月排行榜第一2011年7月 总版技术专家分月排行榜第一2011年6月 总版技术专家分月排行榜第一2011年5月 总版技术专家分月排行榜第一2011年4月 总版技术专家分月排行榜第一
2011年3月 总版技术专家分月排行榜第二2011年2月 总版技术专家分月排行榜第二
2017年2月 总版技术专家分月排行榜第三
2018年1月 .NET技术大版内专家分月排行榜第一2017年5月 .NET技术大版内专家分月排行榜第一2017年4月 .NET技术大版内专家分月排行榜第一2017年3月 .NET技术大版内专家分月排行榜第一2017年2月 .NET技术大版内专家分月排行榜第一2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
匿名用户不能发表回复!|求助 在vb里用webbrowser控件修改网页源码_vb吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:108,749贴子:
求助 在vb里用webbrowser控件修改网页源码收藏
用webbrowser控件打开一个网页&网页中有这样一段源代码,怎样写代码当点击command1时将源代码中的1,3,6,46,5改为5,5,9,5,2
function&FirstModes(modes)
{
var&SMONEYS;
var&sum&=&0;
if(modes==1)&
{SMONEYS=&1,3,6,46,5&;&}
}&
给网友帮你调试
登录百度帐号webbrowser
的方法、属性、事件
相当于IE的“后退”按钮,使你在当前历史列表中后退一项。
相当于IE的“前进”按钮,使你在当前历史列表中前进一项。
相当于IE的“主页”按钮,连接用户默认的主页。
相当于IE的“搜索”按钮,连接用户默认的搜索页面。
连接到指定的URL。
刷新当前页面。
同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,该表定义在ExDisp.h中,可以指定的不同值如下:&
REFRESH_NORMAL&执行简单的刷新,不将HTTP pragma: no-cache头发送给服务器。
REFRESH_IFEXPIRED&只有在网页过期后才进行简单的刷新。
REFRESH_CONTINUE&仅作内部使用。在MSDN里写着DO NOT USE!&请勿使用。
REFRESH_COMPLETELY&将包含pragma: no-cache头的请求发送到服务器。
相当于IE的“停止”按钮,停止当前页面及其内容的载入。
Application
如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser&控件的自动化对象。
返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口。
返回WebBrowser控件容器的自动化对象。通常该值与Parent属性返回的值相同。
为活动的文档返回自动化对象。如果HTML当前正被显示在WebBrowser中,则Document属性提供对DHTML Object Model的访问途径。
TopLevelContainer
返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true。
返回已被WebBrowser控件加载的对象的类型。例如:如果加载.doc文件,就会返回Microsoft Word Document。
返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离。
返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离。
返回或设置WebBrowser窗口的宽度,以像素为单位。
返回或设置WebBrowser窗口的高度,以像素为单位。
LocationName
返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称。
LocationURL
返回WebBrowser当前正在显示的资源的URL。
返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true就可以使用stop方法来撤销正在执行的访问操作。
Description&()
BeforeNavigate2
导航发生前激发,刷新时不激发。
CommandStateChange
当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward菜单项或按钮。
DocumentComplete
当整个文档完成是激发,刷新页面不激发。
DownloadBegin
当某项下载操作已经开始后激发,刷新也可激发此事件。
DownloadComplete
当某项下载操作已经完成后激发,刷新也可激发此事件。
NavigateComplete2
导航完成后激发,刷新时不激发。
NewWindow2
在创建新窗口以前激发。
OnFullScreen
当FullScreen属性改变时激发。该事件采用VARIENT_BOOL的一个输入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)。
改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。VARIANT_TRUE是可见,VARIANT_ FALSE是隐藏。
无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发。
OnStatusBar
与OnMenuBar调用方法相同,标示状态栏是否可见。
调用方法同上,标示工具栏是否可见。
控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数。
StatusTextChange
如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏。
TitleChange
Title有效或改变时激发。
Private Sub WebBrowser1_NewWindow2(ppDisp As
Object, Cancel As Boolean)
Dim frm As Form1
Set frm = New Form1
frm.Visible = True
Set ppDisp = frm.WebBrowser1.object
有这段代码,&有许多网页会出错,经常提示脚本错误,可以用silent属性为True来屏蔽,不过也有些不足!!!
Private Sub WebBrowser1_NewWindow2(ppDisp As
Object, Cancel As Boolean)
Cancel = True
WebBrowser1.Navigate2
WebBrowser1.Document.activeElement.href
【代码3】&
Private Sub WebBrowser1_NewWindow2(ppDisp As
Object, Cancel As Boolean)
On Error Resume Next
Dim frmWB As Form1
Set frmWB = New Form1
frmWB.WebBrowser1.RegisterAsBrowser = True
Set ppDisp = frmWB.WebBrowser1.object
frmWB.Visible = True
frmWB.Top = Form1.Top
frmWB.Left = Form1.Left
frmWB.Width = Form1.Width
frmWB.Height = Form1.Height
功能差不多,任选一个。&
Webbrowser
&Private Sub WebBrowser1_NewWindow2(ppDisp
As Object, Cancel As Boolean)
& Set ppDisp = WebPageAd.Object
WebBrowser
Private Sub Form_Load()
& WebBrowser1.Navigate
("http://www.hywz123.com/tool")
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As
& Cancel = True
& WebBrowser1.Navigate WebBrowser1.Document.activeelement.href
Private Sub
WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
WebBrowser1.Document.Body.Scroll =
实际上上面的效果不咋地,如果懂得HTML知识,&你可以在读取网页的时候,读取HTML源码,&查找替换,&再写入只需在&&body&&&&&/body&&之间插入代码:&&body&&&style=
"overflow-x:overflow-y:hidden "&&即可。其中x表示水平滚动条,将其改为y的话就可以隐藏垂直滚动条。
当然也有其他方法,&比如修改网页的尺寸呀?&有的时候部分元素的居中改为左对齐也能有效果
将WebBrower放在PictureBox控件中,用PictureBox的边框挡住WebBrower的边框。
例如,将WebBrowser1放大点,将PictureBox变小点...PictureBox的appearance设置为0-flat,呵呵,OK~~&
Private Function M_Dom_oncontextmenu() As
Webbrowser1.Document.oncontextmenu = False
End Function
'引用Microsoft HTML OBject Library
Dim WithEvents M_Dom As MSHTML.HTMLDocument
Private Function M_Dom_oncontextmenu() As
M_Dom_oncontextmenu = False
End Function
Private Sub Webbrowser1_DownloadComplete()
Set M_Dom = Webbrowser1.Document
Private Sub Command1_Click()&
WebBrowser1.Navigate
"http://www.applevb.com"&
Private Sub Command2_Click()&
Dim oWindow&
Set oWindow = WebBrowser1.Document.parentWindow&
Set oNav = oWindow.navigator&
Debug.Print oNav.userAgent&
Set oWindow = Nothing&
Set oNav = Nothing&
WebbrowserHTML
向Webbrowser中写入HTML内容的几种方法:&
首先在Form_Load中加入&
WebBrowser1.Navigate
"about:blank"&
确保Webbrowser1可用
Dim s As String
Dim stream As IStream
s = s + ""
s = s + ""
s = s + "hello world"
s = s + ""
WebBrowser1.Document.Write s
WebBrowser1.Document.selection.createrange
Debug.Print o
If (Not o Is Nothing) Then
o.pasteHTML "哈哈"
Set o = Nothing
'插入文本框
WebBrowser1.Document.selection.createrange&
o.execCommand "InsertTextArea",
False, "xxx"&
WebBrowser1.Document.parentwindow.scrollby 0,
Private Sub Command1_Click()
WebBrowser1.GoForward
Private Sub Command2_Click()
WebBrowser1.GoBack
Private Sub Form_Load()
WebBrowser1.Navigate
"http://www.applevb.com"
Private Sub
WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)
If (Command = CSC_NAVIGATEBACK) Then
Command2.Enabled = Enable
If (Command = CSC_NAVIGATEFORWARD) Then
Command1.Enabled = Enable
请问:在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
基本上用&specialfolder(6 )&就可以得到收藏夹的路径,&然后你可以用dir去循环读入每个目录,然后dir里面的file, file的名字就是你要的收藏的名字,&路径可以自己根据从上面得到的路径去得到.
如果你不用dir也可以用vb的dir控件.
Private Type SHITEMID
cb As Long
abID As Byte
Public Type ITEMIDLIST
mkid As SHITEMID
Public Function SpecialFolder(ByRef CSIDL As
Long) As String
locate the favorites folder
Dim R As Long
Dim sPath As String
Dim IDL As ITEMIDLIST
Const NOERROR = 0
Const MAX_LENGTH = 260
R = SHGetSpecialFolderLocation(MDIMain.hwnd, CSIDL, IDL)
If R = NOERROR Then
sPath = Space$(MAX_LENGTH)
R = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath)
SpecialFolder = Left$(sPath, InStr(sPath, vbNullChar) -
End Function&
Webbrowser
是的,webbrowser本生是一个控件,&你要它全屏,就是要它所在的窗体全屏,
可以用setwindowlong取消窗体的&title,
ShowWindow(FindWindow(Shell_traywnd, ), 0)&隐藏tray,就是下边那个包含开始那一行.
ShowWindow(FindWindow(Shell_traywnd, ), 9)&恢复.&够详细了吧.&
然后在form1.windowstate = 2&就可以了.
某些网页出于各种考虑会弹出对话框要求信息确认,往往会中断我们的webbrowser过程,可以使用如下方法:
Private Sub
WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
Dim obj As HTMLDocument
Set obj = pDisp.Document
obj.parentWindow.execScript "function
showModalDialog(){}" '对showModalDialog引起的对话框进行确定
而confirm引发的对话确定框可用confirm替换showModalDialog即可,Alert等同理~
WebBrowser
Private Sub WebBrowser1_NewWindow2(ppDisp As
Object, Cancel As Boolean)
& Cancel = True
Function js(scripts)
&&On Error GoTo 1
&&If scripts = "" Then
Exit Function
Set document = WebBrowser1.document
&&document.parentWindow.execScript
scripts, "javascript"
Exit Function
&&MsgBox "运行js脚本时发生错误!"
End Function
javascript:
function findNode(findString,obj){
var findId=
var findStrings=findString.split(';');
for(var i=0;i&obj.childNodes.i++){
if(obj.childNodes.length&0){
objs=findNode(findString,obj.childNodes[i]);
if(objs!=null)
for(var k=0;k&findStrings.k++){
var temp=findStrings[k].split('=');
temp2=obj.childNodes[i]."+temp[0])
if(temp2!=temp[1]){
if(findId){
return obj.childNodes[i];
例:&input
onclick="window.location.href='resourceissue.jsf';"
type="button" value="资源发布"
style="cursor:"/&
js "findNode('nodeName=INPUT;value=资源发布',document.documentElement).click()"
注:如你打不的不是你的网站页面,可以用VB的JS函数先执行一下我写的这个javascript:findNode函数如:js "function findNode(findString,obj){...."
上面findNode函数要去掉换行符,这里是为了直观才加上的换行符&
例:&&IMG SRC="top.png"
WIDTH="21" HEIGHT="18" BORDER="0"
js "findNode(
'nodeName=IMG;src=top.',document.documentElement).click() "
href="top.html"&xxxx&/a&
js "findNode(
'nodeName=IMG;src=top.#text=xxxx',document.documentElement).click()
我用alert(document.getElementById(
"tdGetSeed ").innerHTML);&看了是:&form
id=frmgetseed style="...." onsubmit="return
false"&&input id=btnGetSeed style="..." onclick=javascript:getSeedClick.call(this);
type=image src="...gif"&&/form&
Set document = WebBrowser1.document&
document.getElementById("btnGetSeed").click()
现在你不用上面那么多代码了,只要一条就行,那就是:
document.getElementById("btnGetSeed").click()
Set document = WebBrowser1.document
document.parentWindow.execScript
"getSeedClick.call(document.getElementById('frmgetseed'))",
"javascript "&
'c:\ggg.html
&&&&function&&&abcd(){
&&alert(&"VBJS");
&&return&&&
&&&&&a&&&id&&&=&&&'xxx&'&&&href=#&&&onclick=&"abcd()&"&&ggggg&&/a&
Private&Sub&Command1_Click()
&&&&WebBrowser1.Navigate&"c:\ggg.html"
&&&&Command2.Enabled&=&True
Private&Sub&Command2_Click()
'&&WebBrowser1.Document.Script.abcd
&&&&Set&WBDocument&=&WebBrowser1.Document
&&&&WBDocument.parentWindow.execScript&"abcd()",&"javascript"
Private&Sub&Form_Load()
&&&&Command2.Enabled&=&False
Command1Command2abcd
Public Function GetImg(WebBrowser, Img, sxz)
'WebBrowser:WebBrowserImg:Imagesxz:
Dim CtrlRange, x
& For Each x In WebBrowser.Document.All
&&& If UCase(x.tagName) = "IMG" Then
If InStr(x.src,&sxz) & 0 Then
& Set CtrlRange = WebBrowser.Document.body.createControlRange()
& CtrlRange.Add (x)
& CtrlRange.execCommand ("Copy")
& Debug.Print "Copy"
& Img.Picture = Clipboard.GetData
&&& End If
End Function
'&IMG id=valiCode
style="CURSOR: pointer" alt= src="/VerifyCode_Login.aspx" border=0&
Call GetImg(Form1.WebBrowser1, Form1.Image1, "VerifyCode_Login.aspx")
Private Sub Form_Load()
&&& WebBrowser1.Navigate ""
Private Sub WebBrowser1_DownloadBegin()
&&& WebBrowser1.Silent = True
Private Sub WebBrowser1_DownloadComplete()
&&& WebBrowser1.Silent = True
'&body&&/body&
&WebDaima = WebBrowser.Document.body.innerhtml
WebDaima = WebBrowser.Document.documentelement.outerhtml
我用WebBrowser取得网页源码,直接运行正常,但在编译后出错:&
提示:实时错误“91”&Object&变量或&with&块变量没有设置,可能是没有下载完所致。&
Private Sub WebBrowser1_DownloadComplete()
If webbrowser.busy=false then
Dim doc, objhtml
Set doc = WebBrowser1.Document&
Set objhtml = doc.body.createtextrange()
If Not IsNull(objhtml) Then
Text1.Text = objhtml.htmltext
3.1.1如何获得网页中被选中部分的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
Set objSelection = Nothing
Private Sub Command1_Click()
'请先选中一些内容
Me.WebBrowser1.ExecWB OLECMDID_COPY,
OLECMDEXECOPT_DODEFAULT
MsgBox Clipboard.GetText
3.1.2 WebBrowser获取网页框架内的代码
WebBrowser
Private Sub Form_Load()
WebBrowser1.Navigate
"http://www.5566.net/"
Private Sub Command1_Click()
Set obj1 = WebBrowser1.Document.Frames
Dim i As Integer
On Error GoTo showmsg:
strname = obj1.Item(i).Name
MsgBox " " & i & " "
'WebBrowser0
Text1 = WebBrowser1.Document.frames(0).Document.body.innerHTML
'下面两句可以访问到多框架内容
'.Document.ParentWindow.Frames.Length
'.Document.ParentWindow.Frames(1).Document.all.tags("a")
'等待多框架网页全部加载完毕,&否则出错
&&While .Busy Or .ReadyState
&& 4 Or .Document.ParentWindow.Frames.Length = 0&
3.2.1取得当前网址中的所有链接名称和地址
Private Sub GetLinks()&
Dim Doc As IHTMLDocument2&
Dim All As IHTMLElementCollection&
Dim i As Integer&
Dim Varl As Variant&
Set Doc = WebBrowser1.document&
Set All = Doc.images '取图片的连接。取文字链接为Set All = Doc.links
For i = 0 To All.length - 1&
Set Varl = All.Item(i, varempty)&
List1.AddItem ("地址:" & Varl.href) 'item.innertext 取文本链接名称&
Set Varl = Nothing&
Set All = Nothing&
Set Doc = Nothing&
3.2.2获取Webbrowser中图片链接
Microsoft Internet Controls
Option Explicit
Private mDocument As Object
Private Sub Command2_Click()
On Error Resume Next
mComGetIEWindows "zcsor" '"
If mDocument Is Nothing Then
&&&& MsgBox ""
&&&& Dim mIndex As Long, mIndexEx As Long&
&&&& For mIndex = 0 To mDocument.Forms.length -
1&& 'FORM&
&& Print mDocument.Forms(mIndex).Name&
&& lstLinks.AddItem ""
&& For mIndexEx = 0 To mDocument.links.length -
&lstLinks.AddItem
mDocument.links(mIndexEx)&
&& lstLinks.AddItem ""
&& For mIndexEx = 0 To mDocument.images.length -
&lstLinks.AddItem
mDocument.images(mIndexEx).src '&
&&&& Next&
&&&& Text1.Text =
mDocument.documentElement.innerHTML&
Private Sub mComGetIEWindows(ByVal IETitle As String)
Dim mShellWindow
As New SHDocVw.ShellWindows
Dim mIndex As
For mIndex = 0
To mShellWindow.Count - 1
If VBA.TypeName(mShellWindow.Item(mIndex).Document) = "HTMLDocument"
Then&&& 'IE
&& &&If mShellWindow.Item(mIndex).Document.Title =
IETitle Then&& '(,,URL)&
mDocument = mShellWindow.Item(mIndex).Document&& '&
&& &End If&
Next mIndex
3.3.1网页中文本框的赋值
id="WordInput" maxlength="40" type="text" /&
WebBrowser1.Document.getelementsbytagname("input")("WordInput").Value
= ""& 'WordInputIDName
3.3.2网页中列表/菜单表单选项的选取
Public Function SelectXq(WebBrowser, SelectName, SelectValue)
& 'WebBrowser:WebBrowser
& 'SelectName: /
& 'SelectValue:
& WebBrowser.doc.All.Item(SelectName).Value = SelectValue
End Function
WebBrowserSelect
&SELECT id=ctl00_ContentPlaceHolder1_DropDownList1
name=ctl00$ContentPlaceHolder1$Drop DownList1&
&&OPTION value= selected&&/OPTION&
&OPTION value=&&/OPTION&
&OPTION value=&&/OPTION&
&OPTION value=&&/OPTION&
&OPTION value=&&/OPTION&
&OPTION value=&&/OPTION&
&OPTION value=&&/OPTION&
&OPTION value=&&/OPTION&
&OPTION value=&&/OPTION&&/SELECT&
Call SelectXq(Form1.WebBrowser1,
"ctl00_ContentPlaceHolder1_DropDownList1", "")
3.3.3自动填写注册表单并提交
&form&& method="POST"&&
action="result.asp"&&&&
&p&*&/p&&&&
&p&*&input&& type="text"&& name="Name"&&
size="20"&&/p&&&&
&p&*&input&& type="radio"&&
value="V1"&&
name="R1"&&/p&&&&
&p&*&input&& type="radio"&&
value="V1"&&
name="R2"&&/p&&&&
&p&*&input&& type="text"&&
name="NickName"&& size="20"&&/p&&
&p&*&select name="aihao"&&option value=""&&/option&&option
value=""&&/option&&&option
value=""&&/option&
&/select&&/p&&&
&p&&input&& type="text"&&
name="EMail"&&
size="20"&&/p&&&&
&p&*&input&& type="password"&&
name="Password"&&
size="20"&&/p&&&&
&p&&input&& type="submit"&&
value=""&&
name="B1"&&&&
&input&& type="reset"&&
value=""&&
name="B2"&&/p&&&/form&
Private Sub Form_Load()
& WebBrowser1.Navigate2 App.Path & "\test.htm"
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL
As Variant)
& Dim vDoc, vTag
& Dim i As Integer
& Set vDoc = WebBrowser1.Document
& List1.Clear
& For i = 0 To vDoc.All.length - 1
&&&If UCase(vDoc.All(i).tagName) = "INPUT"
Or UCase(vDoc.All(i).tagName) = "SELECT" Then
Set vTag =
vDoc.All(i)
If vTag.Type =
"text" Or vTag.Type = "password" Or vTag.Type =
"radio" Or vTag.Name = "aihao" Then
List1.AddItem vTag.Name
Case vTag.Name
vTag.Value =
vTag.Checked =
Case "NickName"
vTag.Value =
Case "aihao"
vTag.Value =
Case "Password"
vTag.Value =
"IMGodpass"
Case "EMail"
vTag.Value =
ElseIf vTag.Type
= "submit" Then
vTag.Click
&&& End If
3.3.4找到提交按钮并点击&
'&BUTTON id="WordSearchBtn" class="btn"&&/button&
WebBrowser1.Document.getelementsbytagname("BUTTON")("WordSearchBtn").Click
'一般来说,最简单最直接的操作网页表单提交方法就是
WebBrowser1.Document.All("Namd").Value="xxxx"&
WebBrowser1.Document.All("DengLu").Click&
'不过此方法需要知道该表单的各个元素的ID.一般来说,普通的网页都能直接从网页源文件中找到这些东西.
'假如整个表单都没能在源文件中找到的,那可以用
WebBrowser1.Document.getElementById("BiaoID").innerHTML&
'"BiaoID"为表单所在表格的ID
'这样Text1显示出来的就是你所要的表单的代码了.
'不过即使是得到隐藏的代码了,还是有可能碰到没ID没NAME没类型的按钮,这怎么办呢?
'不怕,通用方法来了.
'没ID我们就给它个ID嘛.
'在DocumentComplete里网页完全打开后
'处理网页源码,给你要点击的按钮起个名(加上ID)
'例如: Text1 = &BUTTON style='PADDING-RIGHT: 2 PADDING-LEFT: 2
PADDING-BOTTOM: 2 MARGIN-LEFT: 3 LINE-HEIGHT: 100%; PADDING-TOP: 2
HEIGHT: 20px' onclick=javascript:btnSeedFetcherClick.call(this)&确定&/BUTTON&
'将其变为: Text1 = &BUTTON& ID=abc style='PADDING-RIGHT: 2
PADDING-LEFT: 2 PADDING-BOTTOM: 2 MARGIN-LEFT: 3 LINE-HEIGHT: 100%;
PADDING-TOP: 2 HEIGHT: 20px'
onclick=javascript:btnSeedFetcherClick.call(this)&确定&/BUTTON&
WebBrowser1.Document.body.innerHTML = Text1.Text& '将处理完的网页装入WebBrowser1
'然后就可以用回一开始说的最简单的方法来点击了
WebBrowser1.Document.All("abc").Click& '按钮点击
'怎么样,是不是很爽丫,这样就不用去思考还有没什么条件可以来定位这个按钮然后再点击了.
'当然,还有中方法是:
&&&&Dim&OButton
&&& OButton =
WebB.Document.getElementsByTagName("BUTTON")
&&& OButton.Click '这样就点击了前边例子中的那个按钮了.
'这方法通用性也是很强,自己研磨一下你就能运用自如了.
Private Sub
WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Set doc = WebBrowser1.Document
For i = 0 To doc.All.length - 1
If (LCase(doc.All(i).tagname)) = "input" Then
if (LCase(doc.All(i).type)) = "submit" then
Set tg = doc.All(i)
上面在MSDN2找到个答案还没试.IFRAME内的网页的方法不同,可能要用到窗口.试验后再说吧.&
onclick="this.disabled=this.value='登录中……请稍候……';document.form1.submit();" type=submit
value="&登&录&"
For i = 0 To vDoc.All.length - 1
用至于按钮的坐标值就是x,y,这个你得自己找了,因为窗口放在不同的位置,坐标是不一样的,你可以用getcursorpos取得,
'不过,就算你点了,又有什么用呢?点完了还是要验证码的!
mouse_event MOUSEEVENTF_LEFTDOWN, x, y, 0,
GetMessageExtraInfo
mouse_event MOUSEEVENTF_LEFTUP, x, y, 0,
GetMessageExtraInfo
根据ID直接CLICK:
'&BUTTON id="WordSearchBtn"
class="btn"&查询&/button&
'此按钮的点击方法
WebBrowser1.Document.getelementsbytagname("BUTTON")("WordSearchBtn").Click&
WebBrowser Document
' WebBrowser1
WebBrowser1.Navigate
Dim nPath As String, K As Long, E, nRange
nPath = App.Path & "\Tu\"
WebBrowser1.Silent = True '&&
For Each E In WebBrowser1.Document.All
If E.tagName =
"IMG" Then
Set nRange =
WebBrowser1.Document.body.createControlRange()
nRange.Add E
nRange.execCommand
SavePicture
Clipboard.GetData, nPath & K & ".bmp" '
3.4.2用 WebBrowser1 的
ExecWB 方法
WebBrowser1
WebBrowser1.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT
WebBrowser1.ExecWB怎么用?下面是我测试的参数
WB.ExecWB(4,1) ’4,1&保存网页
4,2&保存网页(可以重新命名)
6,1&直接打印
6,2&直接打印
7,1&打印预览
7,2&打印预览
8,1&选择参数
8,2&选择参数
10,1&查看页面属性
10,2&查看页面属性
22,1&重新载入当前页
22,2&重新载入当前页
3.4.3提取网页所有图片地址然后下载
webbrowserdhtmldocument.imagesdocument.getElmentsByTagName("image")
“”Microsoft
Internet Controls WebBrowser1& (Text1, Text2)(Command1) Text1Text2
Option Explicit
Private Declare Function URLDownloadToFile Lib "urlmon"
Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As
String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As
Long) As Long
Private DocComplete As Boolean
'FormResize
Private Sub Form_Resize()
&&& WebBrowser1.Top =
Me.Height + 1
&&& WebBrowser1.Left =
Me.Width + 1
'WebBrowser1DownloadComplete
Private Sub WebBrowser1_DownloadComplete()
&&& DocComplete = True
'WebBrowser1NavigateComplete2
Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL
As Variant)
&& &pDisp.Document.parentWindow.execScript
"window.alert="
pDisp.Document.parentWindow.execScript "window.confirm="
pDisp.Document.parentWindow.execScript "window.prompt="
pDisp.Document.parentWindow.execScript "window.showModalDialog="
pDisp.Document.parentWindow.execScript
"window.showModalessDialog="
pDisp.Document.parentWindow.execScript "window.open="
Private Sub Command1_Click()
&&& DocComplete = False
&&& WebBrowser1.Navigate
Text1.Text
&&& Do Until DocComplete
& DoEvents
&&& Dim ImgCount As Long
&&& Dim aryImgs() As String
&&& Dim doc
&&& Dim eles
&&& Dim ele
&&& Set doc =
WebBrowser1.Document
Set eles = doc.getElementsByTagName("img")
&&& For i = 1 To eles.length
& Set ele = eles.Item(i - 1)
'Set ele = eles.Item(, i)
& If Not Trim(ele.src) =
vbNullString Then
ImgCount = ImgCount + 1
ReDim Preserve aryImgs(1 To ImgCount)
aryImgs(ImgCount) = Trim(ele.src)
&&& Dim strPath As String,
newPath As String
&&& strPath = Text2.Text&
&&& If Not Right(strPath, 1) =
"\" Then strPath = strPath & "\"
&&& If Dir(strPath,
vbDirectory) = vbNullString Then MkDir strPath
&&& If Not ImgCount = 0 Then
& For i = 1 To ImgCount
newPath = aryImgs(i)
newPath = Replace(newPath, "/", "_")
newPath = Replace(newPath, "\", "_")
newPath = Replace(newPath, ":", "_")
newPath = Replace(newPath, "?", "_")
newPath = Replace(newPath, "&", "_")
newPath = Replace(newPath, "&", "_")
newPath = Replace(newPath, "|", "_")
newPath = Replace(newPath, "*", "_")
newPath = Replace(newPath, Chr(34), "_")
Call URLDownloadToFile(0, aryImgs(i), strPath & newPath, 0, 0)
&&& End If
&&& MsgBox ""
Text1""& Text2"D:\Hao123Img\"&& “”D:\Hao123Img\hao123
UTF8UTF8GBK
Public Function UTF8EncodeURI(szInput) '
& Dim wch, uch, szRet
& Dim nAsc, nAsc2, nAsc3
& If szInput = "" Then
&&& UTF8EncodeURI = szInput
&&& Exit Function
& For X = 1 To Len(szInput)
&&& wch = Mid(szInput, X, 1)
&&& nAsc = AscW(wch)
&&& If nAsc & 0 Then nAsc = nAsc + 65536
If (nAsc And &HFF80) = 0 Then
& szRet = szRet & wch
& If (nAsc And &HF000) = 0 Then
&&& uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or
&HC0) & Hex(nAsc And &H3F Or &H80)
&&& szRet = szRet & uch
&&& uch = "%" & Hex((nAsc \ 2 ^ 12) Or
&HE0) & "%" & _
&&& Hex((nAsc \ 2 ^ 6) And &H3F Or &H80)
&&& Hex(nAsc And &H3F Or &H80)
&&& szRet = szRet & uch
& UTF8EncodeURI = szRet
End Function
Public Function GBKEncodeURI(szInput) 'GBK
& Dim i As Long
& Dim X() As Byte
& Dim szRet As String
& szRet = ""
& X = StrConv(szInput, vbFromUnicode)
& For i = LBound(X) To UBound(X)
&&& szRet = szRet & "%" & Hex(X(i))
& GBKEncodeURI = szRet
End Function
MsgBox UTF8EncodeURI("")
MsgBox GBKEncodeURI("")
'KeyWordUtf = UTF8EncodeURI(KeyWord)
KeyWordUtf = GBKEncodeURI(KeyWord)
馆藏&14896
TA的最新馆藏[转]&[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 vb webbrowser 滚动条 的文章

 

随机推荐