当我使用以下命令打开 Google 网页时:
WebBrowser1.Navigate('http://www.google.com.au/advanced_search?hl=en');
它打开时光标位于编辑框中。
所以当我使用:
WebBrowser1.ExecWB(OLECMDID_SELECTALL,OLECMDEXECOPT_PROMPTUSER,vaIn, vaOut);
它只复制光标所在的位置。不是整个网页,这就是我要复制的内容。
我的代码是:
procedure Pause()
begin
//code to pause until page loads.
end;
procedure TForm2.Button22Click(Sender: TObject);
var s:String;
vaIn, vaOut: OleVariant;
begin
s:='http://www.google.com.au/advanced_search?hl=en';
WebBrowser1.Navigate(s);
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
begin
Pause(1000);
end;
//------->I need to put code here so the SELECTALL line of code works.<----------
//------->So the cursor isn't in to editbox but as if it has clicked <----------
//------->the webpage <----------
WebBrowser1.ExecWB(OLECMDID_SELECTALL,OLECMDEXECOPT_PROMPTUSER,vaIn, vaOut);
end;
如何选择整个网页?
在选择全部之前尝试聚焦身体:
((WebBrowser1.Document as IHTMLDocument2).body as IHTMLElement2).focus();
WebBrowser1.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_PROMPTUSER, vaIn, vaOut);
话虽如此,更好的方法是使用document.body.innerText
抓取文本,而不是像您一样模拟选择/复制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)