如何获得webbrowser控件所显示的网页内,用户所点击的超链接地址?

yandongze 2007-02-07 04:20:43
我做一个对话框程序,里面嵌一个webbrowser控件,控件导航到一个网页,网页内有很多超链接,当用户点击其中一个超链接的时候,如何获得这个超链接的地址?我看了过去的帖子,没有一个能给出确切的回答的。希望大家帮忙,本人不吝惜高分。
...全文
1045 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
这个简单啊,网上搜一下就得到答案了.
yandongze 2007-02-09
  • 打赏
  • 举报
回复
还是不知道怎么做。能否再说具体点。我这个对话框应用程序,楼上的兄弟所说的代码我应该在哪里加??真的是胡涂了,从来没做过这方面的东西。
seasol 2007-02-08
  • 打赏
  • 举报
回复

1/程序可取得webbrowser控件的document指针。
2/绑定document的事件。
3/相应事件onclick,
4/得到event对象,判断srcElement是否为连接a或是a的子元素。
5/取得a的href.
蒋晟 2007-02-08
  • 打赏
  • 举报
回复
www.codeproject.com/atl/popupblocker.asp
www.codeproject.com/useritems/BhoNew.asp
msdn.microsoft.com/library/en-us/IETechCol/cols/dnexpie/expie_hello_bho.asp
yandongze 2007-02-08
  • 打赏
  • 举报
回复
对了,如果webbrowser控件内作为浏览器显示出几个超链接。用户点击控件内的超链接,我就要获得其地址。不是用户点击出IE后再获得超链接地址。那么是不是不需要BHO.用OnBeforeNavigate2Explorer1()函数里的参数VARIANT FAR* URL是否就是用户要去的地址呢?
seasol 2007-02-08
  • 打赏
  • 举报
回复
1/略
2/从IDispatch派生一个类,用AtlAdvise绑定IHTMLDocument2的事件。
3/在Invoke方法中,由IHTMLDocument2取得IHTMLWindow2,继而取得IHTMLEventObj,再取得事件名称(get_event)
4/取得IHTMLEventObj的srcElement(IHTMLElement接口).判断tagName
5/由IHTMLElement查询IHTMLLinkElement ,取得href。
yandongze 2007-02-08
  • 打赏
  • 举报
回复
海子大哥。你说的五条应该能解决,问题是我水平差,能把每条再说详细点吗?多谢了
yandongze 2007-02-07
  • 打赏
  • 举报
回复
楼上的大哥,我看不懂,BHO不是做插件的吗?你给的那个函数,我加在什么地方呢
Kudeet 2007-02-07
  • 打赏
  • 举报
回复
ZT: BY modena.

使用BHO, 通过连接点的方式截获IE所有的事件处理,然后通过如下处理获取鼠标点击的链接地址:

HRESULT CMyIEHandle::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pvarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
if( !pDispParams ) {
return E_INVALIDARG;
}

HRESULT hr = S_OK;

switch(dispidMember)
{
case DISPID_BEFORENAVIGATE:
case DISPID_FRAMEBEFORENAVIGATE:
{
USES_CONVERSION;

if( pDispParams->cArgs < 0 ) {
break;
}

if( pDispParams->rgvarg[5].vt != VT_BSTR ) {
break;
}

// 获取被点击的链接地址
_bstr_t href( pDispParams->rgvarg[5].bstrVal );

......

3,056

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧