繁体   English   中英

如何在Firefox插件开发中使用模块

[英]How to use modules in Firefox addon development

尝试创建访问浏览器cookie的firefox插件。 在谷歌教程之后,我编写了以下函数,但是看起来Services.jsm无法访问?

Components.utils.import("resource://gre/modules/Services.jsm");

var myExtension = {
myListener: function(evt) {

    //I get here
    alert("Received from web page: " +
    evt.target.getAttribute("attribute1") + "/" +
    evt.target.getAttribute("attribute2"));

    //I dont see anything dumped 
    let enum = Services.cookies.getCookiesFromHost("example.com");
    while (enum.hasMoreElements()) {
        var cookie = e.getNext().QueryInterface(Ci.nsICookie2);
        dump(cookie.host + ";" + cookie.name + "=" + cookie.value + "\n");
    }

  }
}
document.addEventListener("MyExtensionEvent", function(e) { myExtension.myListener(e); }, false, true);

谢谢@Shakur我没听懂那个e ,是的,你说对了,它需要固定为enum

我对Cookie服务不熟悉,我必须仔细阅读它,但您的方向正确。

这是因为尚未定义Ci,而在while循环中使用Ci。 您可以用Components.interfaces替换Ci ,它应该对其进行修复。 :)如果要使用C*简短形式,通常可以通过在顶部添加以下内容来完成: const {Cc:classes, Cu:utils, Ci:interfaces, Cr:results, CC: Constructor} = Components此处的示例: https : //codereview.stackexchange.com/questions/56821/improvements-to-nsizipreader-and-nsiscriptableinputstream/56824#56824

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM