【发布时间】:2011-02-03 02:44:59
【问题描述】:
阅读有关 BHO 的信息,我知道我可以看到跟踪用户导航的方法 - 但是 - BHO 是否可以识别用户点击了哪个链接(例如 - 如果一个页面上存在两个链接用户可以在其中单击以导航到目的地 a - 是否可以确定实际单击了哪个链接)?
【问题讨论】:
标签: c# internet-explorer-8 bho
阅读有关 BHO 的信息,我知道我可以看到跟踪用户导航的方法 - 但是 - BHO 是否可以识别用户点击了哪个链接(例如 - 如果一个页面上存在两个链接用户可以在其中单击以导航到目的地 a - 是否可以确定实际单击了哪个链接)?
【问题讨论】:
标签: c# internet-explorer-8 bho
如果你可以访问元素,你可以sink the DISPID_HTMLELEMENTEVENTS2_ONCLICK event(有时你不能访问另一个域中框架中的元素)
哦,记得在 BeforeNavigate2 中分离您的事件。
一个问题是没有可靠的方法来检测页面刷新以重新连接事件或处理从脚本 (Ajax) 生成的元素。
【讨论】:
是的,你可以。 BHO 是在 IE 进程中运行的 C++ 代码,因此它可以访问所有内存,并且可以在其中执行几乎任何操作(对进程之外的事情进行处理是一个单独的主题,并且受到 IE 的严重限制)。
【讨论】:
你有两个相同的链接,你想知道哪个被点击了?
为什么不给每个参数添加一个唯一的 URL 参数:
<a href='mylink.html?tracking=linkA'>click me</a>
<a href='mylink.html?tracking=linkB'>click me</a>
然后你的服务器日志会告诉你点击了哪一个。无需任何特定于 IE 的 hack。
【讨论】: