【问题标题】:Firefox extension: write cookie names for the current web-page in a local .txt fileFirefox 扩展:在本地 .txt 文件中写入当前网页的 cookie 名称
【发布时间】:2014-06-20 02:08:46
【问题描述】:

我正在编写一个 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);

在文本文件中写入名称,没有任何反应。在这种情况下,扩展甚至不会创建一个空的 .txt 文件。 我做错了什么?

【问题讨论】:

  • document.cookie 的值是什么,应该是字符串。如果它是空的,什么都不会写。我还建议您使用OS.FilewriteAtomic 参见此处developer.mozilla.org/en-US/docs/JavaScript_OS.File/…
  • @Noitidart 谢谢你的建议。我也尝试过writeAtomic,但我想我会使用@nmaier 提到的nsICookieService。这对我来说似乎是最好的解决方案。
  • nsICookieService 不会写入文件。使用该 cookie 服务后,您仍然必须决定如何将其写入文件,或者使用上面的方法(在主题帖子中)或 moz 开发人员推荐的使用 OS.File 的方式。但你的选择,只是分享它不仅仅是我的推荐。
  • @Noitidart 谢谢你的好点。它会为我节省很多时间!

标签: javascript firefox cookies firefox-addon


【解决方案1】:

没有document,因此main.js 中没有document.cookie

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多