回答

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,因爲他們從該模塊移動到(希望)其他類似的東西。

相關問題