Firefox 以编程方式使用“查找栏”例程会导致显示“查找栏”
更新:似乎是对的修复导致了这种情况。如果知道(a)如何解决这个问题,或者(b)是否有其他方法在给定页面中查找文本,那就太好了 我的一个Firefox扩展以编程方式使用浏览器的查找栏查找网页上的文本。在最新版本的Firefox中,执行“我的加载项”代码会在未找到搜索词时显示“查找”栏,这是它以前没有做过的。我的日常工作如下:Firefox 以编程方式使用“查找栏”例程会导致显示“查找栏”,firefox,firefox-addon,Firefox,Firefox Addon,更新:似乎是对的修复导致了这种情况。如果知道(a)如何解决这个问题,或者(b)是否有其他方法在给定页面中查找文本,那就太好了 我的一个Firefox扩展以编程方式使用浏览器的查找栏查找网页上的文本。在最新版本的Firefox中,执行“我的加载项”代码会在未找到搜索词时显示“查找”栏,这是它以前没有做过的。我的日常工作如下: // Reuse the find bar mechanisms in Firefox (we get a bunch of stuff for free that way)
// Reuse the find bar mechanisms in Firefox (we get a bunch of stuff for free that way)
FindInPage: function(term, e) {
var findBar = document.defaultView.gFindBar;
var shiftKey = e.shiftKey;
var findObj;
var cachedFindTerm;
if ("_find" in findBar) {
findObj = {
find: function(t) {
findBar._find(findBar._findField.value = t);
},
findNext: function() {
findBar._findAgain(false);
},
findPrevious: function() {
findBar._findAgain(true);
}
};
cachedFindTerm = gFindBar._findField.value;
} else {
findObj = findBar;
cachedFindTerm = getBrowser().findString;
}
if (cachedFindTerm == term) {
if(shiftKey)
findObj.findPrevious();
else
findObj.findNext();
} else {
findObj.find(term);
if(shiftKey)
findObj.findPrevious();
}
},
是否有某种方法可以防止执行此块时出现查找栏?我知道使用像这样的私有函数不是最佳实践,但是有没有更好的方法在网页中查找给定的单词呢?一些我不知道的可供附加作者使用的搜索API?您可以使用FindBar.jsm功能,而不必打开它,但我认为您必须实际使用这些内部函数。我没有完全阅读你的问题,但我制作了这个插件,它使用findbar特性-你可以使用findbar.jsm特性,而不必打开它,但我认为你必须实际使用那些内部函数。我没有完全阅读你的问题,但我制作了这个插件,它使用findbar特性-