[英]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.