0

有没有办法将findbar用于非浏览器元素?

我正在尝试采用 findbar在prefwindow的列表框中使用它。

4

1 回答 1

1

不幸的是,该<findbar>小部件实际上是与浏览器元素一起使用的。如果您伪造了必要的浏览器 API,您可以将其与其他数据一起使用,但不能保证它在将来会继续工作。特别是,有问题的 API 在 Firefox 26 中从同步变为异步,这破坏了所有实现它们的扩展,例如 Adblock Plus 或 Stylish。

小部件的实现中,<findbar>您可以看到它当前对浏览器的期望:

Components.utils.import("resource://gre/modules/Services.jsm");

var fakeBrowser = {
  finder: new Finder(),
  _lastSearchString: "",
  _lastSearchHighlight: false,
  currentURI: Services.io.newURI("http://example.com/"),
  contentWindow: null,
  addEventListener: function() {}
  removeEventListener: function() {},
};

这个假浏览器可以分配给findbar.browser属性。这里重要的部分是finder属性,通常是FinderFinder.jsm. 当然,您可能希望实现自己的对象并提供相同的 API。

于 2014-04-14T06:29:06.330 回答