Javascript 如何获得查找栏';Firefox 25中的最后一个搜索字符串是什么?
我有一个扩展,它使用了Javascript 如何获得查找栏';Firefox 25中的最后一个搜索字符串是什么?,javascript,firefox,firefox-addon,Javascript,Firefox,Firefox Addon,我有一个扩展,它使用了fastFind接口(基本上是查找栏)。具体来说,我使用\u find和\u findAgain函数在给定网页中实际搜索给定术语。我的扩展需要跟踪上一次执行的搜索,以下是我在Firefox 24及以下版本中的操作: var cachedFindTerm = getBrowser().fastFind.searchString; 但是,从Firefox25开始,浏览器对象的fastFind属性似乎不再存在。因此,我无法访问查找栏的搜索字符串。我尝试了以下操作,但即使在使用\
fastFind
接口(基本上是查找栏)。具体来说,我使用\u find
和\u findAgain
函数在给定网页中实际搜索给定术语。我的扩展需要跟踪上一次执行的搜索,以下是我在Firefox 24及以下版本中的操作:
var cachedFindTerm = getBrowser().fastFind.searchString;
但是,从Firefox25开始,浏览器对象的fastFind
属性似乎不再存在。因此,我无法访问查找栏的搜索字符串。我尝试了以下操作,但即使在使用\u find
或\u findAgain
函数进行搜索后,它仍返回空:
var findBar = getBrowser().getFindBar();
var cachedFindTerm = findBar._findField.value; // This is always blank!
有没有更好的方法来获取Firefox25中find bar界面使用的上一个搜索字符串?我肯定看不到任何明显的东西…当使用“API”(或者更确切地说,是私有方法,\ucode>前缀方法,它们不保证在任何版本中都不会更改),\u findField
不会得到更新
你必须自己加入新的价值观
大致如下:
gFindBar._find(gFindBar._findField.value = term);
无法复制,适用于我使用gBrowser.getFindBar()。\u findField.value
(gFindBar
是gBrowser.getFindBar()
,顺便说一句)的缩写。请发布一个可复制的示例和/或复制步骤。您是否仅通过find bar API启动搜索(即,您没有通过bar GUI本身进行搜索)?我只是简单地调用findBar.\u find(term)
来进行搜索。这就像一个符咒!从长远来看,我是否应该使用更好的界面以编程方式搜索页面中的文本?我不想写我自己的搜索算法,但我不确定Firefox公开提供了什么。从实现和您尝试做的事情来看,我认为没有更好的方法,甚至没有任何官方的、稳定的API。