一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

delphi中Webbrowser疑難問題集錦

 aaie_ 2011-11-21
1.獲得網(wǎng)頁中變量值
    htm中<script> var currID=123</script>
    程序中可以這么調(diào)用 id := Form1.WebBrowser1.OleObject.Document.script.currID
    值得說明的是,變量可以是javascript定義的,也可以是vbscript定義的,如果Webbrowser1中找不到該變量,調(diào)用會觸發(fā)一個(gè)異常事件,即變量currID不存在

2.執(zhí)行網(wǎng)頁中的函數(shù)
    tmp := 'currID = getNextID(currID)'+#13#10;
    Form1.WebBrowser1.OleObject.Document.parentWindow.execScript(tmp,'JavaScript');
   調(diào)用函數(shù)的方法就是execScript接口,同樣,如果函數(shù)不存在,或者運(yùn)行錯(cuò)誤也會觸發(fā)腳本錯(cuò)誤異常

3.設(shè)置網(wǎng)頁背景
    背景圖片 WebBrowser1.OleObject.Document.body.background   := 'http:///bg.gif'
    背景顏色 WebBrowser1.OleObject.Document.body.bgcolor   := '#eeeeee'

4.調(diào)用網(wǎng)頁中已知對象
    src := WebBrowser1.OleObject.Document.getElementByID('img1').src
     該方法其實(shí)就是javascript中的 getElementByID  

5.獲取頁面中所有的frame
    使用DHTML。
    frames:=wb.OleObject.document.frames;
    for i:=0 to frames.length do
    memo1.lines.Add(frames[i].document.body.innerHTML);
6.BorderStyle=bsNone后Webbrowser會被重新初始化
    這是一個(gè)讓人很意外的一個(gè)問題,Delphi在窗口控件的控制方面做得非常好,很少出現(xiàn)這種BUG
    根據(jù)分析,出現(xiàn)這個(gè)現(xiàn)象有很多情況 改變FormStyle也會出現(xiàn) ; 如果 webbrowser.parent 由panel1 改到panel2.也會導(dǎo)致webbrowser重新
初始化。

7.直接向Webbrowser中寫入html代碼,不需要Navigate到實(shí)際存在的文件
    var
   StrStream:TStringStream;
   SetNoteStr: string;
    begin
SetNoteStr :='<body bgcolor=222222 align=center><br><p align=center><font size=+2 color=#FFFFFF>點(diǎn)點(diǎn)博客 http://</font></p>';
SetNoteStr :=SetNoteStr+'<br><p align=center><font size=+2 color=#FFFFFF>點(diǎn)擊左邊按鈕可查看對應(yīng)圖片</font></p>';
StrStream:=TStringStream.Create(SetNoteStr);
WebBrowser1.Navigate('about:blank');
try
    StrStream.Position:=0;
    ( WebBrowser1.Document as IPersistStreamInit).Load(TStreamadapter.Create(StrStream));
finally
    StrStream.Free;
end;

8.前進(jìn),后退,刷新
   self.WebBrowser1.GoBack
   self.WebBrowser1.GoForward
    self.WebBrowser1.Refresh

9.捕捉NewWindow2事件,即新開窗口事件
   procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
NewWindow: TForm2;
begin
//exit;
NewWindow:= TForm2.Create(nil);
NewWindow.Show;
ppDisp:= NewWindow.Webbrowser1.DefaultDispatch;
end;
值得一題的是該方法不能獲得新開窗口的URL,退一步的方法只能是等到在新的Webbrowser中觸發(fā)BeforeNavigate2事件判斷了

10.網(wǎng)頁中存在iframe時(shí)判斷頁面是否下載結(jié)束
     procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
   if WebBrowser1.Application = pDisp then showmessage('頁面已全部下載完畢')
end;
   說明一下,每個(gè)iframe下載完畢都會觸發(fā)DocumentComplete事件,所以一個(gè)頁面在真正下載完畢前可能被觸發(fā)多次
   WB是否下載結(jié)束大致分兩種情況:第一,html代碼已經(jīng)全部下載到客戶端,一些圖片類的資源尚未下載;第二,頁面中所有資源下載完畢包括iframe嵌套方式都下載完畢.目前判斷第一種情況用此方法即可.第二種情況的判斷似乎很難寫出一個(gè)通用的方法來,目前采用的多數(shù)是超時(shí)即止

11. 給Webbrowser設(shè)置引用頁,Cookie
procedure TForm1.Button1Click(Sender: TObject);
var
Flags, Headers, TargetFrameName, PostData: OLEVariant;
Url, Ref, Cookie: string;
begin
Url := 'http://www./';
Ref := 'http://www.baidu.com/';
Cookie := 'ASPSESSIONIDSSSDDTRQ=MJACEGMBHBCFPBDGCDPKPMIK; virtualwall=vsid=8ff85557fc669bc6f722a5db526e70bf';
Headers := 'Referer: ' + Ref + #10#13;
Headers := 'Cookie: '+Cookie+#13#10;
Webbrowser1.Navigate(Url, Flags, TargetFrameName, PostData, Headers);
end;

繼續(xù)完善中...

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    中文字幕精品一区二区年下载| 成人区人妻精品一区二区三区| 日韩一区欧美二区国产| 中文字幕有码视频熟女| 人妻巨大乳一二三区麻豆| 久久热麻豆国产精品视频| 国产又粗又硬又大又爽的视频| 91免费精品国自产拍偷拍| 欧美午夜一区二区福利视频| 超薄肉色丝袜脚一区二区| 亚洲综合色在线视频香蕉视频| 五月婷婷综合缴情六月| 91人妻人澡人人爽人人精品 | 日本精品中文字幕人妻| 亚洲一二三四区免费视频| 99热九九在线中文字幕| 免费观看一级欧美大片| 亚洲精品成人综合色在线| 日本午夜乱色视频在线观看| 日本午夜免费观看视频| 亚洲综合日韩精品欧美综合区 | 黑色丝袜脚足国产一区二区| 亚洲黑人精品一区二区欧美| 欧美日韩精品一区二区三区不卡| 精品香蕉国产一区二区三区| 日本在线视频播放91| 免费啪视频免费欧美亚洲| 欧美国产极品一区二区| 欧美日本精品视频在线观看| 日韩一区中文免费视频| 亚洲伦片免费偷拍一区| 欧美日韩校园春色激情偷拍 | 亚洲一区二区三在线播放| 国产精品尹人香蕉综合网| 好吊色欧美一区二区三区顽频| 日本在线高清精品人妻| 成人免费观看视频免费| 欧美黑人黄色一区二区| 日韩国产亚洲一区二区三区| 中文字幕不卡欧美在线| 亚洲精选91福利在线观看 |