是否可以将findbar与非浏览器元素一起使用?

时间:2014-04-13 20:37:57

标签: javascript firefox-addon xul thunderbird-addon xbl

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

我尝试使用findbar在listboxprefwindow上使用它。

1 个答案:

答案 0 :(得分:1)

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

implementation of the <findbar> widget中,您可以看到它目前对浏览器的期望:

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 property。这里重要的部分是finder属性,通常是Finder object defined by Finder.jsm。您当然希望实现自己的对象,提供相同的API。

相关问题