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控件.