Есть как минимум два разных способа сделать это:
Во-первых, если вы просто хотите взаимодействовать с хранилищем файлов cookie Firefox, вы можете использовать интерфейсы nsICookieManager и nsICookieManager2 для запроса, добавления и удаления файлов cookie.
Во-вторых, если вам удобнее использовать подход document.cookie
и вы хотите работать с документами, которые уже загружены в браузер, вы можете сделать это, но важно помнить, что нужно получить правильный документ. работать с. Когда вы просто используете document
в коде XUL, вы ссылаетесь на объект документа, связанный с окном браузера, в котором вы работаете. В этом окне может быть загружено несколько страниц на разных вкладках, каждая из которых будет иметь свой собственный объект документа. В результате вам сначала нужно найти интересующий вас объект документа. Например, один из способов сделать это - зарегистрироваться, чтобы получать уведомления о загрузке страниц, а затем проверять страницы по мере их загрузки, чтобы определить, являются ли они интересными. представляет интерес. Например, ваш код XUL может выглядеть так:
function pageLoad (event) {
if (event.originalTarget instanceof HTMLDocument) {
var doc = event.originalTarget;
if (doc.URL.match(/^https?:\/\/[^\/]*\.example\.com\//)) {
⋮
doc.cookie = 'cookie_name' + "=" + value + ";expires=" +
(new Date(2050, 10, 23)).toGMTString();
⋮
}
}
}
var appcontent = document.getElementById("appcontent"); // locate browser
if (appcontent)
appcontent.addEventListener("load", function (e) { pageLoad(e); }, true);
При таком подходе вы можете взаимодействовать только с теми файлами cookie, которые связаны с этой страницей, используя механизмы, с которыми вы знакомы, и не беспокоясь о работе с файлами cookie, связанными с совершенно разными страницами.