日期:2014-05-18  浏览次数:20875 次

请问webBrowser中如何获取object焦点?(GetElementsByTagName和HtmlElement循环匹配无效
请问webBrowser中如何获取object焦点?知道的朋友指点一下,感激不尽
object内容如下

HTML code
<OBJECT id=pay_pwd_ctrl class=passwd-ctrl-object tabIndex=1 codeBase="https://www.tenpay.com/download/tenpaycert_xp.cab#Version=1,1,0,4" classid=clsid:E787FD25-8D7C-4693-AE67-9406BC6E22DF width=155 height=22 viewastext style="border:1px solid red;"></OBJECT>


------解决方案--------------------
TWebBrowser非常特殊,它从TWinControl继承来的SetFocus方法并不能使得它所包含的文档获得焦点,从而不能立即使用Internet Explorer本身具有得快捷键,解决方法如下:

procedure TForm1.SetFocusToDoc;

begin

if WebBrowser1.Document <> nil then

with WebBrowser1.Application as IOleobject do

DoVerb(OLEIVERB_UIACTIVATE, nil, WebBrowser1, 0, Handle, GetClientRect);

end;

除此之外,我还找到一种更简单的方法,这里一并列出:


if WebBrowser1.Document <> nil thenIHTMLWindow2(IHTMLDocument2(WebBrowser1.Document)。ParentWindow)。focus刚找到了更简单的方法,也许是最简单的:

if WebBrowser1.Document <> nil thenIHTMLWindow4(WebBrowser1.Document)。focus还有,需要判断文档是否获得焦点这样来做:

if IHTMLWindow4(WebBrowser1.Document)。hasfocus then