社区
HTML/XML
帖子详情
如何获得webbrowser控件所显示的网页内,用户所点击的超链接地址?
yandongze
2007-02-07 04:20:43
我做一个对话框程序,里面嵌一个webbrowser控件,控件导航到一个网页,网页内有很多超链接,当用户点击其中一个超链接的时候,如何获得这个超链接的地址?我看了过去的帖子,没有一个能给出确切的回答的。希望大家帮忙,本人不吝惜高分。
...全文
1045
10
打赏
收藏
如何获得webbrowser控件所显示的网页内,用户所点击的超链接地址?
我做一个对话框程序,里面嵌一个webbrowser控件,控件导航到一个网页,网页内有很多超链接,当用户点击其中一个超链接的时候,如何获得这个超链接的地址?我看了过去的帖子,没有一个能给出确切的回答的。希望大家帮忙,本人不吝惜高分。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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 );
......
C++实现
Web
Browser
控件
中获取鼠标
点击
事件和
超链接
用一个基本窗口MFC程序实现
Web
Browser
控件
对指定
网页
页面的加载、展示、
点击
事件响应,以及实现对鼠标在页面中
点击
标签事件的捕获,并且返回标签的
超链接
。
VC++实现
Web
Browser
控件
中获取鼠标
点击
事件和
超链接
用一个基本窗口MFC程序实现
Web
Browser
控件
对指定
网页
页面的加载、展示、
点击
事件响应,以及实现对鼠标在页面中
点击
标签事件的捕获,并且返回标签的
超链接
。 在VS2010环境下编译通过。
Web
Browser
控件
应用:弹出新窗体(源码)
Web
Browser
控件
应用:弹出新窗体和关闭窗口
Web
Browser
控件
使用技巧分享
Web
Browser
控件
使用心得。 技巧1:在当前窗口内打开目标为新窗口的
超链接
技巧2:获取状态栏信息 技巧3:页面转向后改变
地址
栏
地址
技巧4:正确设置单选框的方法 技巧5:正确设置联动型下拉列表的方法 技巧6:使用延迟等待服务器交互
基于
Web
Browser
的HTML
网页
编辑器
控件
C#源码版
Web
Browser
的HTML
网页
编辑器
控件
HTML/XML
3,056
社区成员
8,075
社区内容
发帖
与我相关
我的任务
HTML/XML
VC/MFC HTML/XML
复制链接
扫一扫
分享
社区描述
VC/MFC HTML/XML
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章