?Delphi WebBrowser控件的使用 轉(zhuǎn)載
2015-02-10 16:40:13
? 1點(diǎn)贊
?
HaHadoop ?
碼齡12年
關(guān)注
Delphi WebBrowser控件的使用
WebBrowser控件屬性:
1、Application
如果該對象有效,則返回掌管WebBrowser控件的應(yīng)用程序?qū)崿F(xiàn)的自動化對象(IDispatch)。如果在宿主對象中自動化對象無效,程序?qū)⒎祷豔ebBrowser控件的自動化對象
2、Parent
返回WebBrowser控件的父自動化對象,通常是一個(gè)容器,例如是宿主或IE窗口
3、Containe
返回WebBrowser控件容器的自動化對象。通常該值與Parent屬性返回的值相同
4、Document
為活動的文檔返回自動化對象。如果HTML當(dāng)前正被顯示在WebBrowser中,則Document屬性提供對DHTML Object Model的訪問途徑
5、TopLevelContainer
返回一個(gè)Boolean值,表明IE是否是WebBrowser控件頂層容器,是就返回true
6、Type
返回已被WebBrowser控件加載的對象的類型。例如:如果加載.doc文件,就會返回Microsoft Word Document
7、Left
返回或設(shè)置WebBrowser控件窗口的內(nèi)部左邊與容器窗口左邊的距離
8、Top
返回或設(shè)置WebBrowser控件窗口的內(nèi)部左邊與容器窗口頂邊的距離
9、Width
返回或設(shè)置WebBrowser窗口的寬度,以像素為單位
10、Height
返回或設(shè)置WebBrowser窗口的高度,以像素為單位
11、LocationName
返回一個(gè)字符串,該字符串包含著WebBrowser當(dāng)前顯示的資源的名稱,如果資源是網(wǎng)頁就是網(wǎng)頁的標(biāo)題;如果是文件或文件夾 ,就是文件或文件夾的名稱
12、LocationURL
返回WebBrowser當(dāng)前正在顯示的資源的URL
13、Busy
返回一個(gè)Boolean值,說明WebBrowser當(dāng)前是否正在加載URL,如果返回true就可以使用stop方法來撤銷正在執(zhí)行的訪問操作<br/>
WebBrowser控件的事件:
<br/>
1、BeforeNavigate2 導(dǎo)航發(fā)生前激發(fā),刷新時(shí)不激發(fā)
2、CommandStateChange 當(dāng)命令的激活狀態(tài)改變時(shí)激發(fā)。它表明何時(shí)激活或關(guān)閉Back和Forward菜單項(xiàng)或按鈕
3、DocumentComplete 當(dāng)整個(gè)文檔完成是激發(fā),刷新頁面不激發(fā)
4、DownloadBegin 當(dāng)某項(xiàng)下載操作已經(jīng)開始后激發(fā),刷新也可激發(fā)此事件
5、DownloadComplete 當(dāng)某項(xiàng)下載操作已經(jīng)完成后激發(fā),刷新也可激發(fā)此事件
6、 NavigateComplete2 導(dǎo)航完成后激發(fā),刷新時(shí)不激發(fā) NewWindow2 在創(chuàng)建新窗口以前激發(fā)
7、OnFullScreen 當(dāng)FullScreen屬性改變時(shí)激發(fā)。該事件采用VARIENT_BOOL的一個(gè)輸入?yún)?shù)來指示IE是全屏顯示方式(VARIENT_TRUE)還是普通顯 示方式(VARIENT_FALSE)
8、OnMenuBar 改變MenuBar的屬性時(shí)激發(fā),標(biāo)示參數(shù)是VARIENT_BOOL類型的。VARIANT_TRUE是可見,VARIANT_ FALSE是隱藏
9、OnQuit 無論是用戶關(guān)閉瀏覽器還是開發(fā)者調(diào)用Quit方法,當(dāng)IE退出時(shí)就會激發(fā)
10、 OnStatusBar 與OnMenuBar調(diào)用方法相同,標(biāo)示狀態(tài)欄是否可見。
11、 OnToolBar 調(diào)用方法同上,標(biāo)示工具欄是否可見。
12、 OnVisible 控制窗口的可見或隱藏,也使用一個(gè)VARIENT_BOOL類型的參數(shù)
13、StatusTextChange 如果要改變狀態(tài)欄中的文字,這個(gè)事件就會被激發(fā),但它并不理會程序是否有狀態(tài)欄
14、TitleChange 網(wǎng)頁標(biāo)題有效或改變時(shí)激發(fā)
WebBrowser控件的函數(shù):
1、 GoBack 相當(dāng)于IE的”后退”按鈕,使你在當(dāng)前歷史列表中后退一項(xiàng)
2、GoForward 相當(dāng)于IE的”前進(jìn)”按鈕,使你在當(dāng)前歷史列表中前進(jìn)一項(xiàng)
3、 GoHome 相當(dāng)于IE的”主頁”按鈕,連接用戶默認(rèn)的主頁
4、GoSearch 相當(dāng)于IE的”搜索”按鈕,連接用戶默認(rèn)的搜索頁面
5、 Navigate 連接到指定的URL
6、Refresh 刷新當(dāng)前頁面
7、Refresh2 同上,只是可以指定刷新級別,所指定的刷新級別的值來自RefreshConstants枚舉表,該表定義在ExDisp.h中,可以指定的不同值 如下: REFRESH_NORMAL 執(zhí)行簡單的刷新,不將HTTP pragma: no-cache頭發(fā)送給服務(wù)器 REFRESH_IFEXPIRED 只有在網(wǎng)頁過期后才進(jìn)行簡單的刷新 REFRESH_CONTINUE 僅作內(nèi)部使用 REFRESH_COMPLETELY 將包含pragma: no-cache頭的請求發(fā)送到服務(wù)器 <br><br/>
例子程序
1、WebBrowser1.OleObject.document.all.item('btnName').click;//根據(jù)頁面中按鈕的名稱執(zhí)行其點(diǎn)擊事件
2、WebBrowser1.OleObject.document.getElementByID('btnID').click;//根據(jù)按鈕ID點(diǎn)擊
3、WebBrowser1.OleObject.document.getElementsByTagName('input').item(0).click;//根據(jù)按鈕索引點(diǎn)擊
4、WebBrowser1.OleObject.document.all.item('userName').value:=userName;//修改文本框信息,也可用ID,同上
5、ShellExecute(0,'open','www.baidu.com',nil,nil,SW_SHOW);//為瀏覽器打開一個(gè)網(wǎng)頁
1、去滾動條
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
WebBrowser1.oleobject.Document.body.style.overflow:= 'hidden';
end;
2、滾屏
?
//uses MSHTML;
var
a: IHTMLDocument2;
begin
y:=y+20; //加減進(jìn)行上下滾動
a :=WebBrowser1.Document as IHTMLDocument2;
a.Get_ParentWindow.Scroll(x,y);
end;
?
3、去邊框
WebBrowser1.OleObject.Document.Body.style.border := 'none';
WebBrowser1.OleObject.Document.Body.Style.margin := '0px';