gpt4 book ai didi

firefox-addon - 使用 SDK 通过 firefox 无重启扩展添加新的搜索引擎

转载 作者:行者123 更新时间:2023-12-04 06:20:51 25 4
gpt4 key购买 nike

我想添加一个新的搜索引擎,以显示在 firefox 导航栏中出现的搜索栏的下拉列表中。当用户通过我的扩展程序的首选项设置时,将其设置为默认搜索引擎。

对于非无重启扩展,通过 XUL,我们使用组件来做这样的事情:

Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService).addEngineWithDetails(...); //Adds a new search engine

Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService).currentEngine = ...; //sets the current search engine value.

如何在使用 Firefox addon-sdk 创建的无需重启的扩展中做类似的事情?我看到的一个问题是没有稳定的 API 来获取和设置“about:config”中列出的 firefox 首选项。但即使我使用记录在案的不稳定首选项服务 here ,我无法通过扩展程序更改默认搜索引擎。请帮助!

最佳答案

Firefox 中的搜索有两个方面您需要担心。

首先用于搜索输入

您实际上将使用相同的系统来设置搜索引擎,但您需要在 SDK 中加载 chrome 模块。

var { Cc, Ci } = require("chrome");
var SearchService = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService);

// Add your engine to the list of engines in the drop down
SearchService.addEngineWithDetails('yoursearch', 'icon', 'yoursearchalias', 'your search description', 'get', 'http://stackoverflow.com/search?q={searchTerms}');

// Set your engine as the currentEngine so it's the default engine for the search input
SearchService.currentEngine = SearchService.getEngineByName('yoursearch');

地址栏的下一步

Update: As of Firefox 23 the keyword.URL preference has no effect, the above code will change the default behavior in both areas.

如果您想更改用于 URL 栏的搜索引擎,您必须使用用户首选项。

var preferences = require('sdk/preferences/service');

// the 'search keyword' will be appended to the url you provide so strip out the
// {searchTerms} OpenSearch identifier
preferences.set('keyword.URL', 'http://stackoverflow.com/search?q=');

// When you want to set things back just reset the value
preferences.reset('keyword.URL');

祝你好运!

关于firefox-addon - 使用 SDK 通过 firefox 无重启扩展添加新的搜索引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16439821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com