回答

1

使用附加sdk你没有XUL覆盖,所以只有你真的可以做的事情之外就是使用窗口监视器。由于弹出窗口被视为窗​​口,因此当您在浏览器中弹出时,您会在onTrack函数中看到它们。

此示例代码监视窗口,查找窗口位置chrome://global/content/commonDialog.xul,它与autoauth附件的功能类似。该对话框用于许多身份验证问题,因此您必须执行检测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); 

有了这段代码,你几乎可以在autoauth add-on的load()函数中找到它。您可以使用window.document.getElementById()访问该窗口的DOM并更改其中的元素。

注意window-utils模块已被弃用,因此您需要跟上SDK,因为他们从该模块移动到(希望)其他类似的东西。