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