http://blog.csdn.net/xtfnpgy/article/details/15809635
網(wǎng)頁代碼:<SELECT id=fy onchange=TouchRefresh(1) name=fy> <OPTION selected value=15>每頁顯示15筆</OPTION> <OPTION value=30>每頁顯示30筆</OPTION> <OPTION value=60>每頁顯示60筆</OPTION></SELECT>
1.webbrowser執(zhí)行網(wǎng)頁中的JS函數(shù)
如果要執(zhí)行TouchRefresh(1)函數(shù):
webbrowser1.oleobject.document.parentwindow.ExecScript('TouchRefresh(1)’,'Javascript');
webbrowser執(zhí)行自己的JS函數(shù): wb1.OleObject.document.parentwindow.ExecScript('alert(''自定義函數(shù)');','javascript');
方法2:
wb1.Navigate('javascript:alert(''執(zhí)行成功!'');');
2.webbrowser選擇下拉列表
var
ole : olevariant
begin
ole := webbrowser1.oleobject.document.GetElementByID('fy');
ole.value := 60; //下拉框用value,復(fù)選框和多選框用checked:='true'
ole.onchange; //調(diào)用onchange事件
end;
3.webbrowser按照Form提交(針對提交按鈕無id和name的情況)
網(wǎng)頁代碼:
<FORM id=loginForm onsubmit="return validate_form()" method=post action=/pass/serviceLoginAuth2><INPUT id=passToken type=hidden name=passToken>
<INPUT style="DISPLAY: none" id=user class="input_kuang item errortip" name=user>
<INPUT style="DISPLAY: none" id=pwd class="input_kuang item errortip" value="" type=password name=pwd>
<DIV class="sub_login flt_l"><INPUT class="no_bg" value=登入 type=submit></DIV>
提交方法:
webbrowser1.OleObject.document.forms.item('loginForm').submit;
4.webbrowser去掉滾動條
在download事件中: webbrowser1.oleobject.Document.body.Scroll := 'no'; webbrowser1.oleobject.Document.documentElement.style.overflow := 'hidden';
webbrowser控制滾動條滾動: webbrowser1.OleObject.document.parentwindow.scrollby(0,100);//第一個(gè)參數(shù)橫向,第二個(gè)豎向 scrollby滾動多少 webbrowser1.OleObject.document.parentwindow.scrollto(0,1000);// scrollto滾動到某個(gè)位置
5.webbrowser屏蔽鼠標(biāo)右鍵 TEmbeddedWB設(shè)置DisabledPopupMenuItems屬性
webbrowser1.DisabledPopupMenuItems := [rcmDefault,rcmImage,rcmControl,rcmTable,rcmSelText,rcmAnchor,rcmUnKnown,rcmImageArt,rcmImgDynSrc,rcmDebug,rcmAll]
6.webbrowser屏蔽網(wǎng)頁圖片 TEmbeddedWB設(shè)置DownloadImages屬性
webbrowser1.DownloadOptions := [];
7.webbrowser按照元素的屬性獲取元素
function GetDocLinkByHref(doc : IHTMLDocument2;str_url:string):IHTMLAnchorElement;
var i : Integer; label_iDispatch : iDispatch; label_element : IHTMLAnchorElement; //引用mshtml begin Result := nil;
doc := webbrowser1.document as Ihtmldocument2; if not Assigned(doc) then Exit; for i:=0 to doc.links.length-1 do begin label_iDispatch := doc.links.item(i,0); label_element := doc.links.item(I,0) as IHTMLAnchorElement; if (AnsiPos(str_url,(doc.links.item(I,0) as IHTMLElement).getAttribute('tag',0))>0) then begin Result := label_element; Break; end; end; end;
8.webbrowser TEmbededwb屏蔽彈窗并捕獲彈窗信息 //在 TEmbededwb的OnShowMessage事件中處理
procedure TForm1.wb1NavigateComplete2(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); VAR str_url : string; begin Wb1.OleObject.document.parentWindow.execScript('window.alert=null;','JavaScript'); Wb1.OleObject.document.parentWindow.execScript('window.open=null;','JavaScript'); Wb1.OleObject.document.parentWindow.execScript('window.close=null;','JavaScript'); Wb1.OleObject.document.parentWindow.execScript('window.showModalDialog=null;','JavaScript'); Wb1.OleObject.document.parentwindow.execscript('function confirm() {return true;}','Javascript'); end;
function TForm1.webbrowser1ShowMessage(Sender: TObject; HWND: Cardinal; lpstrText, lpstrCaption: PWideChar; dwType: Integer; lpstrHelpFile: PWideChar;
dwHelpContext: Integer; var plResult: Integer): HRESULT; begin plResult := IDOK; //屏蔽alert\open\close等彈窗 Result := S_OK; //屏蔽confirm確認(rèn)框,并點(diǎn)擊確認(rèn) mmo1.Lines.Add(lpstrText); //lpstrText即為捕獲到的彈窗內(nèi)容 end;
procedure CloseSound;
var
hWinmm: Cardinal;
pwaveOutWrite: Pointer;
lp: Cardinal;
begin
hWinmm := LoadLibrary('Winmm.dll');
if hWinmm > 0 then
pwaveOutWrite := GetProcAddress(hWinmm, 'waveOutOpen');
if pwaveOutWrite <> nil then begin
VirtualProtect(pwaveOutWrite, 3, PAGE_EXECUTE_READWRITE, lp);
Move(#C2#18#$00, pwaveOutWrite^, 3);
end;
end;
//強(qiáng)制Webbroser使用IE8內(nèi)核 SetWBCoreIE8(8000);
procedure SetWBCoreIE8(i_value:Integer);
var str_exeName : string; reg : TRegistry; begin try str_exeName := RightFromStr(Application.ExeName,'\',False); reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl', False) then begin if not reg.KeyExists('FEATURE_BROWSER_EMULATION') then reg.CreateKey('FEATURE_BROWSER_EMULATION'); end; reg.CloseKey; if reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', False) then begin reg.WriteInteger(str_exeName,i_value); // if not reg.ValueExists(str_exeName) then // begin // reg.WriteInteger(str_exeName,i_value); // end; end; reg.CloseKey; reg.Free; except end; end;
最后奉獻(xiàn)以前收集的關(guān)于WB的文章鏈接:
Delphi Webbrowser
- delphi 模擬自動登錄網(wǎng)頁webbrowser
- delphi webbrowser查找對象實(shí)現(xiàn)自動登錄_
- delphi webbrowser與delphi互動 !!!
- WebBrowser組件和MSHTML 在Delphi中的使用Delphi
- delphi中Webbrowser - Max Woods - 博客園
- WebBrowser組件和MSHTML 在Delphi中的使用
- webbrowser輕松實(shí)現(xiàn)自動填表
- WebBrowser 操作記要 - 萬一 - 博客園
- delphi中Webbrowser的使用技巧 - wystec的日志 - 網(wǎng)易博客
- delphi webbrowser 遍歷網(wǎng)頁元素
- Delphi7 Webbrowser制作網(wǎng)頁表單自動提交器按步分析(1) - 中星9號 - 博客園
- delphi中如何在多線程環(huán)境下操作webbrowser控件
- delphi利用webservise登陸百度
- VB WebBrowser 為頁面添加代碼的方法_百度知道
- 關(guān)閉webbrowser的彈出框(對話框
- Delphi中WebBrowser(或者EmbeddedWebBrowser)控件打開部分網(wǎng)站報(bào)“Invalid floating point operation”異常的解決方法 - XuXn - 博客園
- Delphi中webbrowser的document 對象的屬性方法事件_硬軟兼得博客_新浪博客
- Delphi獲取句柄并發(fā)送消息
- delphi WebBrowser獲取iframe頁面內(nèi)容
- Twebbrowser如何寫多線程? - Delphi _ 網(wǎng)絡(luò)通信_分布式開發(fā)
- 【發(fā)現(xiàn)】如何屏蔽掉WebBrowser在刷新網(wǎng)頁等時(shí)候發(fā)出的聲音 - Boringlamb - 博客園
- 對ExtendedWebBrowser的再擴(kuò)展(續(xù))_呼吸空間_百度空間
- 接收IWebBrowser2的自動化事件_My_百度空間
- delphi WebBrowser 開發(fā)瀏覽器_SAP學(xué)習(xí)_abap_百度空間
- 【轉(zhuǎn)】WebBrowser的Cookie操作(與CookieContainer的關(guān)系)_奎宇工作室_百度空間
- 藍(lán)鳥-Delphi的WebBrowser改造,對網(wǎng)頁中Alter等對話框的改造方法(轉(zhuǎn)載)
- 如何找到webbrowser打開網(wǎng)頁中flash的接口?能否用這個(gè)接口控制flash的播放?_VC高級研究_積木群組
- webBrowser獲取網(wǎng)頁flash句柄模擬單擊的問題 - .NET技術(shù) _ C#
- VB 如何向 WebBrowser1 中的flash發(fā)送左邊點(diǎn)擊事件 - VB _ 網(wǎng)絡(luò)編程
- 用WebBrowser實(shí)現(xiàn)HTML界面的應(yīng)用
- 擴(kuò)展 WebBrowser 控件 DragWebBrowser FlashGameWebBrowser_C# 視角_CS程序員之窗
- WebBrowser 設(shè)置代理(100分) - Delphi _ 網(wǎng)絡(luò)通信_分布式開發(fā)
- 屏蔽WebBrowser頁面中傳出來的聲音 - jxgxy - 博客園
- 可以對同一個(gè)程序中的多個(gè)WebBrowser設(shè)置不用的代理服務(wù)器嗎?
- 本地:雙線路、雙IP、雙網(wǎng)卡 設(shè)置上網(wǎng)_我是誰?—Andy Gu_百度空間
- Delphi中使用EmbeddedWB屏蔽指定內(nèi)容的網(wǎng)頁對話框 - Patrick Pullman - 博客園
- Web Browser Control – Specifying the IE Version - Rick Strahl's Web Log
- WebBrowser與IE的關(guān)系,如何設(shè)置WebBrowser工作在IE9模式下? - BobLiu - 博客園
- WebBrowser 中,無法釋放內(nèi)存? - CSDN論壇 - CSDN.NET
- 為什么瀏覽器會使用多進(jìn)程架構(gòu)。 - ithzhang - 博客頻道 - CSDN.NET
- Windows 消息 - 萬一 - 博客園
- 【W(wǎng)ebBrowser】多進(jìn)程編程(一) - dick_china的專欄 - 博客頻道 - CSDN.NET
- 如何設(shè)置IE8的WebBrowser控件(MSHTML) 的渲染模式 - IE瀏覽器研發(fā) !!
- 用Tchromium替換webbrowser - Bach - 博客園
- webBrowser 控制select 下拉列表_風(fēng)月無邊_百度空間
- html中下拉列表框中的全部屬性 - 已解決 - 搜搜問問
- Delphi編寫 修改Cookie的瀏覽器
- TEmbeddedWB Component - EmbeddedWB - bsalsa forum
- webBrowser獲取網(wǎng)頁flash句柄模擬單擊的問題 - CSDN論壇 - CSDN.NET
支持原創(chuàng),轉(zhuǎn)載請注明出處!
|