我正試圖添加一個函數到我的Firefox擴展中,當點擊站點A上的一個按鈕時觸發事件從站點B刪除cookie。網站A和B不共享域,但網站B運行在注入站點A的iframe中。我需要Firefox內容腳本中的點擊事件觸發內容腳本或Firefox擴展主要中的事件以刪除所有從網站B的餅乾。如何使用Firefox 22+擴展刪除跨站點cookie?
我有點擊偵聽器分配給按鈕和射擊。我已經使用Google Chrome在擴展程序中實現了同樣的效果。我收到有關使用組件的錯誤,但找不到使用組件的解決方案。它只需要在Firefox 22+上工作。我正在使用addon-sdk-1.14來開發擴展。
ContentScript.js
function DeleteCookies() {
var payload="Delete";
self.port.emit("Delete", payload);
}
Main.js
var {Cc, Ci} = require("chrome");
pageMod.PageMod({
include: "*",
contentScriptFile: [ self.data.url("jquery-1.9.1.js")
,self.data.url("script.js")],
onAttach: function(worker) {
worker.port.on('Delete',function(){ DeleteCookies();});
}
});
function DeleteCookies() {
var cookieManager = Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager);
var domain= "siteB.com";
var iter = cookieManager.enumerator;
var cookie_count = 0;
while (iter.hasMoreElements()) {
var cookie = iter.getNext();
if (cookie instanceof Ci.nsICookie) {
if (domain.indexOf(cookie.host.toUpperCase()) != -1) {
cookieManager.remove(cookie.host, cookie.name, cookie.path, cookie.blocked);
cookie_count++;
}
}
}
};
包括你的錯誤。它可能有助於縮小範圍。 –
除了未來關於組件被刪除的錯誤之外,沒有其他錯誤被拋出。然而,第一個警報從不會觸發。 – TauterTwiggy