3 javascript cookies xul add-on
我正在开发一个Firefox插件,允许用户(所有用户都是特定组的一部分;此插件在受众范围内非常有限)从状态栏查看其身份验证cookie的状态.我们都必须进行身份验证才能访问与工作相关的站点,但是当cookie过期时我们不会收到任何警告,因此这会导致工作流程中出现烦人且有时严重的中断.最后,这个添加将允许我们从状态栏提交我们的凭据,而不必去做任何重新加载或重定向,但是现在,我只是想看到它显示状态.
我一直在查看nsICookie,nsICookie2,nsICookieManager等的Mozilla开发人员页面,它并没有非常清楚地知道它是如何适应JavaScript或XUL或其他任何东西的.
理想情况下,我只是想让JavaScript走出文档并获取我指定的域的cookie字符串.如果我能做到这一点,它将允许代码可能被移植到其他浏览器(特别是Safari和Chrome).但是,如果这必须是特定于浏览器的,那么我至少想知道检查cookie是否存在于Firefox中的方法,而没有任何设置或删除的功能.
简单地说,我想要一种说法:
if (cookieExists("sample.com", CookieName)) {
alert("You're signed in!");
} else {
alert('Go sign in, you fool!');
}
Run Code Online (Sandbox Code Playgroud)
什么是最简单/最便携的方式(当然是浏览器方面)?
我一直在查看nsICookie,nsICookie2,nsICookieManager等的Mozilla开发人员页面,它并没有非常明确地了解它是如何适应javascript或XUL或其他任何内容的.
可以访问Firefox扩展中的所有cookie,并使用nsICookieManager和nsICookie接口.从您的扩展程序中的JavaScript代码,您可以访问cookie管理器
var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfaces.nsICookieManager);
Run Code Online (Sandbox Code Playgroud)
而且你可以迭代所有存储的cookie
var enum = cookieManager.enumerator;
while (enum.hasMoreElements()){
var cookie = enum.getNext();
if (cookie instanceof Components.interfaces.nsICookie){
// commands
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当引用cookie对象时,您可以检查其属性
cookie.host
cookie.name
cookie.value
...
Run Code Online (Sandbox Code Playgroud)
在nsICookie界面中定义.此代码特定于Firefox,可以作为浏览器扩展或签名脚本运行.希望我的解释有所帮助.
下面我介绍一些在扩展中使用JS XPCOM接口的链接:
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |