有没有办法将findbar用于非浏览器元素?
我正在尝试采用 findbar在prefwindow的列表框中使用它。
有没有办法将findbar用于非浏览器元素?
我正在尝试采用 findbar在prefwindow的列表框中使用它。
不幸的是,该<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
属性,通常是Finder
由Finder.jsm
. 当然,您可能希望实现自己的对象并提供相同的 API。