Firefox 扩展程序如何检测用户何时使用搜索栏进行搜索



Firefox 扩展是否有可能挂钩浏览器提供的搜索栏,以便在用户执行搜索时,回调函数(由扩展提供)接收搜索查询并使用了哪个搜索引擎?

我能够找到有关哪个XUL元素包含搜索栏文本框的信息(如何从Firefox扩展定位搜索栏?),但这是我所能得到的。

搜索栏元素有一堆由 XBL 文件定义的方法 chrome://browser/content/search/search.xml .您感兴趣的功能将是 doSearch(query, where, engine) .简单地覆盖它似乎效果很好:

// in the context of a loaded browser window…
let bar = document.getElementById("searchbar");
let doSearch = bar.doSearch;
bar.doSearch = function(query, where, engine) {
    // your code here! e.g. console.log(query, where, engine);
    // don't forget to call the original function:
    doSearch(query, where, engine);
};

一个完整的示例是清除搜索扩展。

最新更新