Javascript 如何检测和修改;“需要授权”;Firefox扩展中的弹出窗口

Javascript 如何检测和修改;“需要授权”;Firefox扩展中的弹出窗口,javascript,firefox-addon,firefox-addon-sdk,Javascript,Firefox Addon,Firefox Addon Sdk,我正在开发一个附加组件来安全地存储/检索信息,包括用户配置文件和密码(密码管理器的接口)。当弹出“需要授权”对话框时,我想确定URI,检查是否持有该站点的用户配置文件/密码,如果持有,则填充相关字段并提交对话框。 弹出窗口确实会触发可见的xul窗口和domWillOpenModelDialog事件,因此我能够运行一个函数(在第二种情况下为setTimeout)。但是,我无法找到检查弹出窗口属性(例如其标题)的方法,也无法修改用户名和密码。 下面的代码是我所掌握的,我注意到内容脚本可以检查主机名,

我正在开发一个附加组件来安全地存储/检索信息,包括用户配置文件和密码(密码管理器的接口)。当弹出“需要授权”对话框时,我想确定URI,检查是否持有该站点的用户配置文件/密码,如果持有,则填充相关字段并提交对话框。 弹出窗口确实会触发可见的
xul窗口
domWillOpenModelDialog
事件,因此我能够运行一个函数(在第二种情况下为
setTimeout
)。但是,我无法找到检查弹出窗口属性(例如其标题)的方法,也无法修改用户名和密码。 下面的代码是我所掌握的,我注意到内容脚本可以检查主机名,例如
console.log(document.location.hostname)
但是试图修改密码会导致失败,更改用户名会进入一个无休止的循环,弹出窗口会反复声明:

您将要使用用户名“hello”登录到网站“fred.com”,但该网站不需要身份验证。这可能是想欺骗你

任何帮助或提示都将不胜感激

 var winu = require('sdk/window/utils');
 var CWin = winu.getMostRecentBrowserWindow();
 CWin.addEventListener("DOMWillOpenModalDialog", function() {CWin.setTimeout(NfyBox, 500);}, true);
function NfyBox() {
    worker = tabs.activeTab.attach({
        contentScriptFile: self.data.url("notifybox.js")
    });
    worker.port.emit("notify");
}
self.port.on("notify", function() {
if ((document.location.username == "") && (document.location.password == ""))
{
document.location.username = "hello";
}
});

您真正想要做的是查看
nsPrompter
/
nsloginmanagercompter
源代码,例如,在并最终实现您自己的prompter,覆盖内置的prompter。谢谢-我希望避免这种情况,但您可能是正确的