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個屬性,以及它們的功能:
|
WebBrowser 的事件:
|
如何利用 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控件.