如何在 Firefox 扩展中实现观察者模式?
我正在尝试在 Firefox 扩展中实现一个简单的观察者模式。这最初看起来相对容易,但我认为从库中获取功能是有意义的
JS.Observable 似乎是一个不错的选择,但我发现 JS.Class 不喜欢从扩展中运行,因为 DOM 不在它期望的位置,等等。
- 的 bind 似乎提供了一种替代方案,显然 JQuery 应该在扩展的上下文中工作。这依赖于绑定到 DOM 对象,这对于我想要做的事情来说似乎有点令人讨厌。
YUI 的 自定义事件 似乎很理想,但 YUI 无法在扩展内工作。< /p>
是否有我可以使用的观察者模式的良好实现,或者我应该按照类似 这个来自 O'Reilly Answers?
I'm trying to implement a simple Observer pattern within a Firefox extension. This initially appears relatively easy, but I thought it made sense to get the functionality from a library
JS.Observable seemed like a good option, but I found that JS.Class is unhappy running from within an extension as the DOM is not where it expects it to be, etc.
JQuery's bind appears to offer an alternative and apparently JQuery should work inside the extension's context. This relies on binding to a DOM object which seems a little nasty for what I'm trying to do.
YUI's Custom Event seems ideal, but YUI does not work inside extensions.
Is there a good implementation of the Observer pattern that I can use, or should I just write it by hand following something like this from O'Reilly Answers?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您完全使用 Chrome 代码工作,我只会使用 Observer Service。
If you're working completely in chrome code, I would just use the Observer Service.
使用 jQuery 自定义事件发布/订阅 博客文章解释说,JQuery 的绑定可以可以应用于任何对象,而不仅仅是 DOM 对象。所以,这就是我所采用的解决方案,我遵循 在 Firefox 扩展中使用 jQuery 的指南让 JQuery 在我的命名空间扩展中正常工作。
The Publish/Subscribe with jQuery Custom Events blog post explained that JQuery's bind could be applied to any object, not just a DOM object. So, that's the solution I've gone with, I followed A Guide To Using jQuery Inside Firefox Extension to get JQuery working nicely inside my namespaced extension.