javascript - 从 Firefox 扩展 (XUL) 读取网页 cookie

标签 javascript firefox cookies firefox-addon xul

我正在为 Firefox 浏览器创建一个扩展。我想读取一个由 HTML 页面在 XUL 文件中使用 JavaScript 设置的 cookie。可能吗?

我尝试使用 document.cookie,但它不起作用:

function readCookie(name) {
  var ca = document.cookie.split(';');
  var nameEQ = name + "=";
  for(var i=0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1, c.length); //delete spaces
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
  return "";
}

function createCookie(name, value, days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
    }
  else var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function eraseCookie(name) {
  createCookie(name, "", -1);
}

你能帮帮我吗?提前致谢。

最佳答案

这些代码片段可能会有所帮助

///By this method you can iterate throug each cookie by its name or value... 

function ReadCookie()   
{
var cookieMgr = Components.classes["@mozilla.org/cookiemanager;1"]
         .getService(Components.interfaces.nsICookieManager);

for (var e = cookieMgr.enumerator; e.hasMoreElements();) {
 var cookie = e.getNext().QueryInterface(Components.interfaces.nsICookie); 
  dump(cookie.host + ";" + cookie.name + "=" + cookie.value + "\n");

 ///Your code here to check your cookie or your implementation...
 ///You can use cookie name or value to select your cookie...

}
}

///如果你想通过域名读取cookies你可以使用这个代码...

function GetCookie(){
try
{
alert("Getting Cookies");
    var ios = Components.classes["@mozilla.org/network/io-service;1"]
            .getService(Components.interfaces.nsIIOService);
var uri = ios.newURI("http://www.yoursite.com/", null, null);

var cookieSvc =
   Components.classes["@mozilla.org/cookieService;1"]
             .getService(Components.interfaces.nsICookieService);
var cookie = cookieSvc.getCookieString(uri, null);

///Your logic here...
}
catch (errorInfo)
{
    alert(errorInfo);
}

}

希望这些会有所帮助:)

关于javascript - 从 Firefox 扩展 (XUL) 读取网页 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1523137/

相关文章:

javascript - 提交表单后重置表单字段

javascript - JS - 制作自定义 AJAX 函数时出现问题

javascript - 如何检查ajax请求是否被浏览器中止

java - 让 WebDriver 在没有 ExpectedCondition 的情况下等待

ruby - 在多线程环境中跨不同请求共享( Mechanize ) session ?

session - Spring 3 MVC session 在外部重定向后丢失

javascript - 我怎样才能使一个函数在整个 jQuery 插件及其所有内部方法中可用?

python - 我在哪里可以从 Firefox 获取有关 :support 的原始信息

xcode - El Capitan 中的 stringWithContentsOfURL cookie jar

javascript - JSONP 是否对响应施加了一些大小限制?