监听器在将其加载到Mozilla SDK之前更改URL

dye*_*ray 5 firefox firefox-addon firefox-addon-sdk

我想尝试类似于对mozilla sdk上的位置栏进行拼写错误修正.用户在位置栏上输入一个URL,并在加载之前进行更改.我试过了:

如看到SDK/pagemod 这里.问题是它在页面开始渲染时运行,而不是在开始下载之前运行.

sdk/tabs =>它没有在开始加载网站之前调用的事件.

以上就是我发现会抓住用户试图进入的网站.我也找到了sdk/system/events,但我发现我唯一可以使用的事件是http-on-modify-request,这确实捕获了每个http请求.问题是,您无法修改该请求的网址.

为了解决这个问题,我见过两个选择:

这个插件的方式 =>获取当前选项卡并在那里加载新的URL.问题很明显,请求可能不是来自用户尝试加载的URL,而是来自页面html中的url.我尝试将请求URL与tabs.activeTab.url进行比较,但是在发送http-on-modify-request事件后它会被设置.

或者这里解释的解决方案我不确定是否可行(这不适用于mozilla sdk).

所以基本上我现在的问题可以解决:

- 在开始加载和更改它之前从位置栏捕获URL的方法(我在sdk上没有看到任何内容)或者 - 知道何时请求对应于用户尝试加载的网站的方式在位置栏或-a方式修改请求(网址)

mat*_*gus 5

我在我的附加Google重定向修复程序中执行操作,您可以在此处看到源代码.

基本上,您正在寻找的是收听http-on-modify-request事件.如果您遵循该代码,您将看到如何拦截请求,并在某些条件下中止它并将其替换为新请求.

希望能帮助到你.