我正在开发一个Firefox插件,在Firefox插件网站提名公开发布插件后,评论者要求我将所有函数包装在名称空间或包名称中。包装jQuery功能
到目前为止,我除了包裹“jQuery的”功能我的所有功能:
myaddonname = {
initialize: function() {
var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
if (document.getElementById("contentAreaContextMenu") != null) {
document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", this.onContextMenuPopup(), false);
}
jQuery.noConflict();
},
.
.
.
.
}
jQuery.noConflict和其他一些jQuery的Ajax调用仍然解开,没有办法做到这一点?
环境是未知的,因为每个下载我的插件的用户将有不同的其他插件,可能会冲突我的。所以它是否值得使用它(我只是使用核心Ajax函数没有其他插件)? 还有一件事情是关于“window.myaddonname”在它之前写窗口更好吗?因为firefox的默认命名空间是“chrom”或类似的东西。 – 2009-09-17 05:55:06
@Khaled如果'window'不存在,那么为什么不把它分配给一个全局对象(你可以通过你的匿名函数中的this来引用它)。 – kangax 2009-09-17 05:58:25