С дополнительным sdk у вас нет наложений XUL, поэтому единственное, что вы действительно можете сделать за пределами этого, - использовать наблюдателя окна. Поскольку всплывающие окна считаются окнами, вы увидите их в функции onTrack
, когда они появятся в браузере.
Этот пример кода смотрит окна, которые ищут расположение окна chrome://global/content/commonDialog.xul
, которое похоже на то, что делает дополнение autauth. Этот диалог используется для нескольких вопросов, связанных с автоответчиком, поэтому вам придется выполнить дополнительную работу по обнаружению NTLM-аутентификации.
var { isBrowser } = require("sdk/window/utils");
var delegate = {
onTrack: function (window) {
if (!isBrowser(window) && window.location === "chrome://global/content/commonDialog.xul") {
// this could be the window we're looking for modify it using it's window.document
}
},
onUntrack: function (window) {
if (!isBrowser(window) && window.location === "chrome://global/content/commonDialog.xul") {
// undo the modifications you did
}
}
};
var winUtils = require("window-utils");
var tracker = new winUtils.WindowTracker(delegate);
С помощью этого кода вы в значительной степени находитесь в точке функции loadauto надстройки autoauth. Вы можете использовать window.document.getElementById()
для доступа к DOM этого окна и изменения элементов внутри него.
Примечание что модуль window-utils
устарел, так что вы должны будете идти в ногу с SDK, как они перемещаются из этого модуля (надеюсь) что-то еще подобное.