我正在编写一个Firefox扩展,它应该从当前访问的网页获取所有cookie名称,并在文本文件中写入名称。到目前为止,我在javascript中有以下代码:
var widgets = require("sdk/widget");
var tabs = require("sdk/tabs");
var widget = widgets.Widget({
id: "mozilla-link",
label: "Main Menu",
contentURL: require("sdk/self").data.url("icon-16.png"),
onClick: function() {
const {Cc,Ci} = require("chrome");
var f = '/home/user4/Desktop/my-addon/exported.txt';
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath(f);
if(file.exists() == false) //check to see if file exists
{
file.create( Ci.nsIFile.NORMAL_FILE_TYPE, 420);
}
var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
foStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0);
var converter = Cc["@mozilla.org/intl/converter-output-stream;1"].createInstance(Ci.nsIConverterOutputStream);
converter.init(foStream,"UTF-8", 0, 0);
converter.writeString('Some test string.');
converter.close(); // this closes foStream
}
});
成功创建exported.txt
文件并在其中写入"Some test string."
字符串。但是,当我尝试
var x = document.cookie;
获取cookie然后
converter.writeString(x);
在文本文件中写入名称,没有任何反应。在这种情况下,扩展名甚至不会创建en .txt
文件。
我做错了什么?
答案 0 :(得分:2)
document
中没有document.cookie
,因此没有main.js
。
tabs.activeTab.attach
或类似的page-mod
和communicate document.cookie
值从该内容脚本附加到您的main.js
进行编写到文件。nsICookieService
。