全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2006
推到 Plurk!
推到 Facebook!

tWebBrowser自動換頁遇到的問題

缺席
BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-02-15 20:30:43 IP:202.154.xxx.xxx 訂閱
請問各位先進
想讓tWebBrowser自動換頁,以下是程式碼,雖然會自動換頁,但除第一頁網頁內容顯示正常外其餘都顯示不完全
請前輩們指導

procedure TForm1.DownLoadHtml;
var
sUrl:String;
begin
if fPagNum > 8 then
Exit;
if fPagNum = 0 then
begin
fPagNum:=1;
sUrl:='http://www2.standardandpoors.com/portal/site/sp/en/ap/page.topic/ratings_fs_fi/2,1,4,0,0,0,0,0,0,0,4,0,0,50,0,0.html';
WebBrowser1.Navigate(sUrl);
end;

if (fPagNum > 0) then
begin
inc(fPagNum);
//DataList.Clear;
sUrl:=Format('http://www2.standardandpoors.com/portal/site/sp/en/ap/page.topic/ratings_fs_fi/2,1,4,0,0,0,0,0,0,0,4,0,%d,50,0,0.html',[fPagNum]);
WebBrowser1.Navigate(sUrl);
end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DownLoadHtml;
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
DownLoadHtml;
end;


BOSS
中階會員


發表:70
回覆:79
積分:64
註冊:2006-11-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-02-16 10:32:56 IP:202.154.xxx.xxx 訂閱
我可能說的太含糊,網頁有分頁我要做的是模擬使用者在webbrowser按下一頁的動作,希望各位大大指導
washare
初階會員


發表:14
回覆:36
積分:35
註冊:2006-10-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-21 04:51:11 IP:203.204.xxx.xxx 訂閱
之前寫過這個功能,找了粉久粉久才從網路上找到這段程式,你可以參考一下。其實還蠻簡單的,主要是用HTMLAnchorElement物件的click方法來自動click
以下程式碼是從網路抓來的,幫你加了一個註解oLink.href
//----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

你可以使用TWebbrowser物件來操作,下面的FindLinkByInnerText函數是找到指定InnerText的連結,你可以找到指定的連結後,執行click即可,如:

oLink:= FindLinkByInnerText(TWebbrowser,'連結名稱');
if oLink<>nil then oLink.click;

======================================================
function FindLinkByInnerText(WB: TWebbrowser; sInnerText: WideString): HTMLAnchorElement;
//找到指定InnerText的連結
var
oDoc: HTMLDocument;
oLinks: IHTMLElementCollection;
oLink: HTMLAnchorElement;
N1: Integer;
begin
Result:= nil;
oDoc:= WB.Document as HTMLDocument;
oLinks:= oDoc.links as IHTMLElementCollection;
for N1:= 0 to oLinks.length-1 do
begin
oLink:= oLinks.item(N1,0) as HTMLAnchorElement;
if SameText(oLink.innerText,sInnerText) then //oLink.innerText也可用oLink.href就可直接填入頁面上的url來找到這個link element
begin
Result:= oLink;
exit;
end;
end;
end;

agogorz
初階會員


發表:9
回覆:34
積分:28
註冊:2005-04-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-07-10 12:00:33 IP:59.124.xxx.xxx 訂閱
這程式完成文件就馬上要求新的網頁,所以才會顯示不完全吧?
formcreate因為程式不只跑webbrowser所以會慢了點,才會有只有第一個顯示完整的錯覺
系統時間:2024-04-28 6:57:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!