2010-10-22 59 views
1

我正在编写一个应用程序,一旦用户浏览特定网址,该应用程序就变得“有用”。如何检测用户何时浏览特定网址?

我想功能添加到我的应用程序,它将一旦用户浏览此网址,我想编写某种看门狗来触发它的自动启动。

我的问题是,是否有当用户浏览的网址,我想至少支持IE和Firefox,Chrome和Safari是好的,有得到通知的通用方式。

我读到DDE和WWW_RegisterURLEcho,但是从我的理解有什么不Firefox支持的,也是我写了一点样品不与IE浏览器正常工作。

预先感谢您

一些问题**

待办事项地址名字对象和异步可插入协议帮助我在这里?它由FireFox支持吗?

回答

1

如果你有在网站的控制,你可以把它写在用户使用电脑。然后让您的应用程序监视该cookie。

+0

没有跨浏览器的方式来监控cookie。 – SLaks 2010-10-22 14:35:36

+0

当然有办法看多个文件夹。您的应用程序必须设置为监视IE,FF,Safari,Chrome等Cookie文件夹。 – Brad 2010-10-22 14:38:12

+0

感谢布拉德,但我希望找到更好的方法。此外,明天我可能想“监视”我不控制ebay.com的网站。所以我宁愿找到一种方式,在那里我得到通知哪个url用户被导航。 – 2010-10-22 15:20:13

0

您可以通过多种方式和许多不同的层实现此功能。

在最高级别上,您可以实现一个浏览器插件。在这一层没有跨浏览器的解决方案,它可以让你编写代码一次并为每个浏览器工作。简单来说,Firefox可以完全实现为Javascript + XUL插件,并使用内置的XPCom接口(nsIProcess)启动辅助进程。对于IE,你需要编写一个处理DWebBrowserEvents2::BeforeNavigate2的COM,C++和win32 BHO。这是最难的事情。 Safari,Chrome和其他浏览器的机制可以用来实现相同的行为,并具有不同程度的难度。

在一个新的水平,你可以实现一个HTTP代理,类似Fiddler2,首先重定向通过本地代理的所有HTTP流量。每个浏览器都有不同的配置其代理设置的方式,但它们基本都是注册表设置或配置文件。

在最基本的层面上,你可以只SNIF所有IP流量走出去的机器,类似Wireshark的做它的方式,只是找HTTP请求您的网址。这可能更难以编码,但可以适用于所有浏览器,无需任何特殊的浏览器配置。你可能需要写一个驱动程序。我不知道,我从来没有在这个层面上完成任何工作。