打开带有新标签页替换插件的新标签时,如何保持地址栏清晰?

时间:2014-05-15 03:34:17

标签: firefox firefox-addon firefox-addon-sdk

我正在为Firefox开发新的标签页替换插件。安装完成后,当我单击新选项卡图标打开新选项卡时,新选项卡打开正常,但地址栏显示凌乱的URL: 资源://firefox_p-at-getblog-dot-com/getblog_buttons_page/data/newtab.html

如何将地址栏设为空?

3 个答案:

答案 0 :(得分:2)

只有few pages在URI栏中有“空白”uris。

现在,您有几个选择:

  • 覆盖/注入browser.xul,只需将您的附加URI添加到gInitialPages 或者将about模块和gInitialPages内容结合起来。
  • 实施像@canuckistani建议的约会模块。虽然这仍然会显示一个URI,但它会更好。 ;)
  • 或者,作为最后的手段,override about:newTab。这可能(会?)有副作用,但是,像其他加载项仍然覆盖about:newTab,现在恰好是您的加载项的新页面,可能或可能根本不起作用和/或打破东西。

答案 1 :(得分:1)

setCurrentURI / webNavigation对象上有一个名为docShell的函数。这是一个时髦的,我从来没有找到它真正的用途。但它完全符合你的需要。

gBrowser.webNavigation.setCurrentURI(Services.io.newURI('about:blank', null, null))

将其设置为about:blank将其删除,您可以将其设置为任何网址,但不会更改网页,只会更改网址。

所以请听一下新标签的页面DOMContentLoaded,并在加载后立即运行此代码。也许可以更快地改变它,比如检测输入框的值何时改变。

我无法弄清楚如何让它设置实际读取about:newtab的网址,也许其他人可以帮助我们,看起来如果你将其设置为about:ANYTHING它只是空白网址栏如果ANYTHING已被一个关于url的内容所占用,那么就像:newtab,about:about blanks it。很奇怪也许有人可以帮我们弄清楚如何欺骗我也很好奇。

答案 2 :(得分:0)

你可能想用你自己的自定义替换它:protocol - 这里有soem docs如何做到这一点:

https://developer.mozilla.org/en-US/docs/Custom_about:_URLs

以下是一个相当复杂的SDK插件的真实示例:https://github.com/mixedpuppy/about-awards/blob/master/lib/main.js#L171-L192