本文整理自网络,侵删。
1、禁止Webbrowes新窗口打开页面,强制在当前页面打开 方法:放两个webbrowser控件,错码如下;
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var PpDisp: IDispatch; var Cancel: WordBool);begin PpDisp := WebBrowser2.Application;end; procedure TForm1.WebBrowser2BeforeNavigate2(Sender: TObject; const PDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool);var urlStr: string;begin urlStr := string(URL); WebBrowser1.Navigate(urlStr ); Cancel := True;end;取到全部连接在USER 加入 MSHTML; 和 ActiveX;procedure TForm1.Button2Click(Sender: TObject);vardoc:IHTMLDocument2;all:IHTMLElementCollection;len,i:integer;item:OleVariant;begindoc:=WebBrowser1 .Document as IHTMLDocument2;all:=doc.Get_links;//doc.Linkslen:=all.length; for i:=0 to len-1 do beginitem:=all.item(i,varempty);//EmpryParammemo1.lines.add(item.href);end;end; /////////////////////////////////////////////////////////////////////////////////////////////////取得网页的源代码Memo1.Text:=WebBrowser1.OleObject.document.documentelement.innerhtml; //////////////////////////////////////////////////////////////////////////////////////////////////禁止广告弹出 procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool);begincancel:=trueend; //////////////////////////////////////////////////////////////////////////////////////////////不需要弹出窗口直接进去procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;var ppDisp: IDispatch; var Cancel: WordBool);varNewApp: TForm1;beginNewApp := TForm1.Create(Owner);NewApp.Visible := true;ppdisp := NewApp.webbrowser1.Application; end /////////////////////////////////////////////////////////////////////////////////////////////////只读文字 procedure TForm1.Button1Click(Sender: TObject);varHTMLDocument: IHTMLDocument2;begin HTMLDocument := WebBrowser1.Document as IHTMLDocument2; Memo1.Text := HTMLDocument.body.innerText;end; ///////////////////////////////////////////////////////////////////////////////////////////////////////复制uses Activex;下面这些加在哪里都可以。initialization oleinitialize(nil); finalization oleuninitialize;//////////////////////////////////////////////////////////////////////////////////////////////////////选择全部和复制procedure TForm1.Button2Click(Sender: TObject);beginWebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_PROMPTUSER, EmptyParam, EmptyParam); //选择全部 WebBrowser1.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_PROMPTUSER, EmptyParam, EmptyParam); //拷贝到剪贴板end; 提交表单中的下拉框和单选uses mshtml; varHtmlDoc:IHTMLDocument2;myitem:Olevariant;i:integer;beginmyitem := WebBrowser1.Document;for i := 0 to myitem.all.length - 1 dobeginif myitem.all.item(i).tagName = 'SELECT' then // 下拉框选择beginmyitem.all.item(i).value:='2'; // '2'系value="里的内容end; if myitem.all.item(i).tagName = 'INPUT' thenbeginif Uppercase(myitem.all.item(i).type)='RADIO' thenbeginif myitem.all.item(i).value='求' then myitem.all.item(i).checked:=true;end;end;end;end; varo : Olevariant;begino := WebBrowser.OleObject.document.all.item('LoginUserID',0); //找到登录用户名的输入框o.value := 'TEST';o := WebBrowser.oleobject.document.all.item('LoginPassword',0); //找到登录密码的输入框o.value := 'TEST'WebBrowser.oleobject.document.Forms.Item(0, 0).submit; //第一个表单提交{o :=WebBrowser.oleobject.document.all.item('Login',0); //或者用指定表单名称提交o.Click; //点击操作,对其它对象也可同样操作}end; 调用JAVASCRIPT函数WebBrowser1.OleObject.document.parentWindow.execScript('GSLogin()','javascript'); 多个frames的输入,FrameIndex为Frame的序号 var o : Olevariant; begin //找到登录用户名的输入框 o := WebBrowser.oleobject.document.documentelement.document.frames.item(FrameIndex).document.all.item('LoginUserID',0); o.value := 'TEST'; //找到登录密码的输入框 o := WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex).document.all.item('LoginPassword',0); o.value := 'TEST' //第一个表单提交 WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex).document.Forms.Item(0, 0).submit; { //或者用指定表单名称提交 o :=WebBrowser.oleobject.document.documentelement.document.frames.item(FramIndex)..document.all.item('Login',0); o.Click; //点击操作,对其它对象也可同样操作 } end; WebBrowser1.oleobject.Document.getElementById('button').Click; ///////////////////////////////////////////////////////////////////////////////////////第1个item是女(0开始)WebBrowser1.OleObject.document.getElementsByTagName('input').item(1).click;或者用name,但name要唯一WebBrowser1.OleObject.document.all.item('Registered1').click
判断Webbrowes里的Radio是否选中
<input type="radio" name="typeTab" class="radio" checked="checked" val="1" gmmbettypeid="5300"/>
<label class="clickable">?^尾</label>
</th>
<th id="type-tab2" class="align-l s-line tabitem clickable">
<input type="radio" name="typeTab" class="radio" val="2" gmmbettypeid="5100"/>
<label class="clickable">前定一</label>
</th>
<th id="type-tab3" class="align-l s-line tabitem clickable">
<input type="radio" name="typeTab" class="radio" val="3" gmmbettypeid="5200"/>
<label class="clickable">前定二</label>
</th>
<th id="type-tab4" class="align-l tabitem clickable">
<input type="radio" name="typeTab" class="radio" val="4" gmmbettypeid="5400"/>
<label class="clickable">中肚</label>
</th>
<th id="type-tab5" class="align-l s-line tabitem clickable">
<input type="radio" name="typeTab" class="radio" val="5" gmmbettypeid="5500"/>
<label class="clickable">後定一</label>
</th>
<th id="type-tab6" class="align-l tabitem clickable">
<input type="radio" name="typeTab" class="radio" val="6" gmmbettypeid="5600"/>
<label class="clickable">後定二</label>
</th>
if Web1.OleObject.document.Frames.item(0).document.all.item('typeTab',2).checked then
相关阅读 >>
Delphi getvolumeinformation获取硬盘分区信息
Delphi用idhttp.get访问一个网址返回403错误,但用ie浏览器访问正常
Delphi searchrec.attr and fadirectory
更多相关阅读请进入《Delphi》频道 >>