1

我想拦截用户在浏览器中输入的任何 URL,并在允许导航继续之前执行一些任务(任何方式都可能很好 - 即通过插件、代理或任何其他创造性建议)。澄清一下 - 我不是指需要捕捉这个的特定应用程序,而是 - 用户在其浏览器上所做的任何导航都需要被捕捉(即用户没有打开我的应用程序,它应该在后台运行或类似的东西......)提前谢谢......

4

4 回答 4

1

我认为您不能“拦截”用户通过 javascript 输入的内容。它闻起来像一个大的安全漏洞。您可以检测到用户何时离开页面,但您无法检测到他接下来要去哪里。

  • 如果您只需要处理 URL 字符串,代理是一个不错的选择。但是任何更复杂的东西在代理中实现都会很复杂。

  • 但是,插件取决于您所针对的浏览器,您不能制作一个针对所有浏览器并同时控制用户导航的插件。但是,如果您要选择用户使用的浏览器,那么也许可以。

  • 滚动您自己的浏览器(使用 IE 的 ActiveX 控件)或使用其中一种开源替代品并使用它怎么样?

您希望进行的具体处理是什么?

于 2008-11-10T06:29:26.880 回答
0

如果您使用的是 Javascript,当用户存在一个名为onunload.

window.onunload = function() {
    alert("You're leaving this page.");
};
于 2008-11-10T06:12:08.940 回答
0

您可以创建一个隐藏框架,将手表添加到window.location主框架的对象中。我不确定您是否可以在 IE 中使用手表 - 如果不能,您可能需要定期轮询另一个窗口以查看它在哪个页面上。

如果用户在浏览器窗口中键入地址,则您无法捕获该地址(因为您的框架将被删除),但您将获得他们点击的所有链接(甚至指向外部站点)。

于 2008-11-10T06:38:24.880 回答
0

您可能想看看Fiddler

... Web 调试工具,可从几乎任何应用程序捕获、重放和修改 HTTP 和 HTTPS 流量。

据我了解,它充当轻量级代理,可以执行 .NET 脚本定义的各种很酷的事情。

如果您感兴趣,您还可以对其进行设置,以便您可以通过它运行移动设备。

于 2009-10-22T19:51:50.307 回答