WebBrowser 操作(从网上收集)
生活随笔
收集整理的這篇文章主要介紹了
WebBrowser 操作(从网上收集)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
WebBrowser 操作記要
WebBrowser1.GoHome; //到瀏覽器默認主頁 WebBrowser1.Refresh; //刷新 WebBrowser1.GoBack; //后退 WebBrowser1.GoForward; //前進 WebBrowser1.Navigate('...'); //打開指定頁面 WebBrowser1.Navigate('about:blank'); //打開空頁面//打開空頁面, 并寫入... WebBrowser1.Navigate('about:<head><title>標題</title><body>頁面內容</body>');
//讀取網頁腳本中的變量: procedure TForm1.Button1Click(Sender: TObject); vars: string;i: Integer; begins := WebBrowser1.OleObject.document.Script.str;i := WebBrowser1.OleObject.document.Script.num;ShowMessage(s); //Hello ShowMessage(IntToStr(i)); //99 //也可以這樣讀: s := WebBrowser1.OleObject.document.parentWindow.str;i := WebBrowser1.OleObject.document.parentWindow.num;ShowMessage(s); //Hello ShowMessage(IntToStr(i)); //99 end;
假如網頁中有這樣的語句: <script> var str = "Hello"; i = 99; </script>
//調用網頁腳本中的函數: procedure TForm1.Button1Click(Sender: TObject); beginWebBrowser1.OleObject.document.parentWindow.MB(); //HTML-Js //如需指定腳本語言, 需要: WebBrowser1.OleObject.document.parentWindow.execScript('MB()','JavaScript'); //HTML-Js end;
假如有這樣的腳本: <script> function MB(){ alert('HTML-Js'); } </script>
//判斷網頁及內部框架網頁是否全部下載完畢 procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;const pDisp: IDispatch; var URL: OleVariant); beginif WebBrowser1.Application = pDisp thenbeginText := '網頁下載完畢!';end; end;
//改變背景色或背景圖片: WebBrowser1.OleObject.document.body.bgcolor := '#FF0000'; WebBrowser1.OleObject.document.body.background := '...圖片地址';
//操作有 ID 標簽的對象: vars: string; begins := WebBrowser1.OleObject.document.getElementByID('span1').innerText;ShowMessage(s); //這是 span1 標簽中的內容 //或者: s := WebBrowser1.OleObject.document.parentWindow.span1.innerText;ShowMessage(s); //這是 span1 標簽中的內容 //隱藏它: WebBrowser1.OleObject.document.parentWindow.span1.style.display := 'none'; end;
假如網頁中有這樣的內容: <span id=span1>這是 span1 標簽中的內容</span>
//獲取網頁源代碼 vars: string; begins := WebBrowser1.OleObject.document.body.innerHTML; //body內的所有代碼 s := WebBrowser1.OleObject.document.body.outerHTML; //body內的所有代碼, 包含body標簽 s := WebBrowser1.OleObject.document.documentElement.innerHTML; //html內的所有代碼 end;//獲取網頁全部源代碼 uses ActiveX; varms: TMemoryStream; beginif not Assigned(WebBrowser1.Document) then Exit;ms := TMemoryStream.Create;(WebBrowser1.Document as IPersistStreamInit).Save(TStreamAdapter.Create(ms), True);ms.Position := 0;Memo1.Lines.LoadFromStream(ms, TEncoding.UTF8); // Memo1.Lines.LoadFromStream(ms, TEncoding.Default); {GB2312 等雙字節} ms.Free; end;
//WebBrowser 中的右鍵菜單 //先要添加ApplicationEvents1,指定其Message事件 //屏蔽右鍵菜單 procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); beginwith Msg dobeginif not IsChild(WebBrowser1.Handle, hWnd) then Exit;Handled := (message = WM_RBUTTONDOWN) or (message = WM_RBUTTONUP) or (message = WM_CONTEXTMENU);end; end;//替換右鍵菜單 procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var mPoint: TPoint; beginif IsChild(WebBrowser1.Handle, Msg.Hwnd) and((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP)) thenbeginGetCursorPos(mPoint); //得到光標位置 PopupMenu1.Popup(mPoint.X, mPoint.Y); //彈出popupmenu1的菜單 Handled:=True;end; end;
//新頁面寫入 beginWebBrowser1.Navigate('about:blank');WebBrowser1.OleObject.Document.Writeln('ok'); end;//從流中寫入: varms: TMemoryStream; beginms := TMemoryStream.Create;Memo1.Lines.SaveToStream(ms);ms.Position := 0;(WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));ms.Free; end;//禁止提示腳步錯誤 procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject;const pDisp: IDispatch; var URL: OleVariant); beginWebBrowser1.Silent := True; end;//禁止彈出窗口 procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;var Cancel: WordBool); beginCancel := True; end;
總結
以上是生活随笔為你收集整理的WebBrowser 操作(从网上收集)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《大数据》2015年第2期“动态”——大
- 下一篇: 【项目管理】敏捷和Scrum