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

时间:2015-04-24 05:24:22

标签: javascript firefox-addon

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

我能够找到有关XUL元素包含搜索栏文本框(How do I target the search bar from a Firefox extension?)的信息,但这是我能够获得的。

1 个答案:

答案 0 :(得分:0)

searchbar元素有一堆由chrome://browser/content/search/search.xml的XBL文件定义的方法。您感兴趣的功能是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);
};

完整的示例是Clear Search扩展名。