Firefox 4 默认地址栏行为

Bri*_*128 6 firefox address-bar

我最近从 Chrome 迁移到 Firefox 4(Chrome 的文本突出显示太烦人了,因为我在阅读时突出显示)。我喜欢 Chrome 的一件事是地址栏会进行谷歌搜索,除非它是一个 URL。因此,我习惯于在地址栏中输入“定义:动物园”。

不幸的是,Firefox 然后给出了错误 Firefox doesn't know how to open this address, because the protocol (define) isn't associated with any program.

有没有办法修改 Firefox 的默认地址栏行为,使其以更像 Chrome 风格的方式处理这个问题?也就是说,我希望它在无法识别协议时执行搜索。

slh*_*hck 8

为什么它不起作用

这只是不适用于define: xyz或其他带有冒号的 Google 关键字,因为它们可能被解释为协议分隔符 ( http:, ftp:, ...)。

所有其他搜索都应该正常工作。如果您在 URL 栏中键入“menagerie”,它会进行 Google 搜索。

顺便说一句:您也可以转到about:config,例如,将首选项更改为keyword.URL类似的内容http://search.yahoo.com/search?p=,然后只要您输入的不是 URL,它就会在 Yahoo 中搜索它。

“解决方法”

但我假设您知道在转到地址栏之前要搜索某些内容:如果您使用键盘快捷键,您会按Ctrl+L转到 URL 栏,那么您可能只需按Ctrl+K即可到达而是搜索栏。如果您随后输入“define:menagerie”,它会按预期将您带到定义页面。


use*_*686 6

半解决方案是define:专门安装一个协议处理程序。

  1. 打开谷歌。

  2. 粘贴到地址栏:

    javascript:window.navigator.registerProtocolHandler("define", "http://www.google.com/search?q=%s", "Google definitions");
    
    Run Code Online (Sandbox Code Playgroud)

    (确保更改第二个参数以匹配您使用的 google.* 域。)

  • 好的!我还应该注意到,省略冒号(这会触发 Firefox 认为“定义”是一个协议)也可以。所以“定义动物园”和“定义:动物园”产生相同的结果。 (3认同)