据我所知,jQuery是Firefox扩展的首选Javascript框架,但我对Prototype感到满意,需要实现一个简单的Firefox扩展。
不幸的是,我在调用Prototype方法时遇到了麻烦。每个方法调用都会导致无操作:没有错误或方法调用发生的其他迹象。
以下是重叠代码:
<overlay id="liteextension-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
对Prototype方法的这个调用返回一个空数组,即使页面中有div:
var all_divs = $$('div');
“prototype.js”文件与XUL文件位于同一个目录中。
答案 0 :(得分:2)
在Firefox扩展中使用诸如prototype和jquery之类的库是一件复杂的事情。问题是,从XUL加载时,JQuery没有加载到与从网页加载时相同的上下文中。因此,如果您正在尝试操作页面中的内容,则在XUL中加载的库将不会看到它期望的页面DOM。使用JQuery(不确定原型),您可以通过指向正确的上下文来解决这个问题。
其次,在browser.xul overlay中的扩展中导入库会将库中定义的所有函数和变量放在全局命名空间中,可能与其他扩展甚至Firefox代码冲突。这可能会造成很大的混乱。
此论坛帖子中有更多信息,它是关于JQuery的,但同样的问题适用...也许建议的解决方案可能对您有用: