首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

WebBrowser中如何模拟鼠标点击超级连接

2012-03-01 
WebBrowser中怎么模拟鼠标点击超级连接如题,我用代码 IHTMLElement.click 事件是不行的,是打开了超级连接,

WebBrowser中怎么模拟鼠标点击超级连接
如题,我用代码 IHTMLElement.click 事件是不行的,是打开了超级连接,但是没有响应 ONCLICK事件,所以这样的方法不行,必须相应才行。

另外,我希望最好是这样,查找当前页面的连接坐标,若此链接未出现在屏幕中,自动将滚动条,滚动到这个相应的位置,然后将鼠标定位到此链接上,模拟点击。

希望我说的清楚,谢谢各位前辈。

我在补充几点:

  begin  
  with (WebBrowser1.Document as IHTMLDocument2).body.all as  
  IHTMLElementCollection do  
  for I := 0 to length - 1 do  
  with item(I, I) as IHTMLElement do  
  if SameText(tagName, 'a') then  
  with item(I, I) as IHTMLAnchorElement do  
  if SameText(href, 'http://www.csdn.net/') then click;  
  end;


像这样的代码就不用了,不是我要的。



  if Pos( edtInnerText.Text, WideCharToString(PWideChar(innerText) ) ) <> 0 then
  begin
  t := offsetTop;
  L := offsetLeft ;
  while (item(i,i) as IHTMLElement) = (item(i,i) as IHTMLElement).offsetParent do
  begin
  t := t + offsetTop;
  L := L + offsetLeft;
  end;

  end;


这样的代码好像可以用,但是我取得的数据总是太小,我需要点击的连接在滚动条的底部,但返回的 t 的值恒为1,L值恒为15,不知道为啥。

[解决办法]
offsetParent 递归一下
[解决办法]
你这个问题其实关键的是无法确定超级链接的坐标,点击比较简单。
我也遇到过这种问题,没人能解决,或者是只言片语的答案,下手做就不是那么回事了
期待着你能尽快解决,也给我共享一下,^_^!
[解决办法]
如果直接调用OLE的事件不行,可以试试分析页面代码,调用JS看看
[解决办法]

探讨
如果直接调用OLE的事件不行,可以试试分析页面代码,调用JS看看

热点排行