Firefox 使用新选项卡页面替换加载项打开新选项卡时,如何保持地址栏清晰?

Firefox 使用新选项卡页面替换加载项打开新选项卡时,如何保持地址栏清晰?,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我正在为Firefox开发一个新的标签页替换插件。安装后,当我单击“新建选项卡”图标打开新选项卡时,新选项卡将正常打开,但地址栏显示一个混乱的URL: resource://firefox_p-at-getblog-dot-com/getblog_buttons_page/data/newtab.html 如何使地址栏为空?您可能想用自己的自定义about:protocol替换地址栏-以下是有关如何执行此操作的soem文档: 在一个相当复杂的SDK插件中有一个真实的例子:只有一个在URI栏中有

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


如何使地址栏为空?

您可能想用自己的自定义about:protocol替换地址栏-以下是有关如何执行此操作的soem文档:

在一个相当复杂的SDK插件中有一个真实的例子:

只有一个在URI栏中有“空白”URI的插件

现在,您有两个选择:

  • 覆盖/注入到
    browser.xul
    中,只需将您的附加URI添加到
    ginitialpage
    或者将about模块和GinitialPage结合起来
  • 实现一个about模块,如@canuckistani所建议的。虽然这仍然会显示一个URI,但它将是一个更好的URI
  • 或者,作为最后手段,
    关于:newTab
    。但是,这可能(将?)有副作用,就像其他仍然覆盖着
    about:newTab
    的附加组件一样,它现在恰好是您的附加组件的新页面,它可能会工作,也可能不会工作和/或破坏内容

    • webNavigation
      /
      docShell
      对象上有一个名为
      setCurrentURI
      的函数。它很时髦,我从来没有发现它的真正用途。但它正是你所需要的

      gBrowser.webNavigation.setCurrentURI(Services.io.newURI('about:blank', null, null))
      
      将其设置为
      about:blank
      将其清空,您可以将其设置为任何url,但不会更改页面,只更改url

      因此,请听新选项卡的page
      DOMContentLoaded
      ,加载后立即运行此代码。也许可以更快地更改它,比如检测输入框的值何时更改


      我不知道如何将url设置为实际阅读
      about:newtab
      ,也许其他人可以帮助我们,似乎如果您将其设置为
      about:ANYTHING
      它只是将url栏清空,如果
      ANYTHING
      已经被about url占用,那么像about:newtab,about:about清空它。奇怪的是,也许有人能帮我们弄清楚如何欺骗我也很好奇的东西。

      我想尝试一下覆盖:newTab方法。你能详细说明一下吗?如何覆盖:newTab?谢谢。因为这实际上是所有方法中最不有利、最容易出错的方法,所以我决定不详细说明。我不知道你为什么投了反对票,我修正了它,这是一个有效的问题。