【发布时间】:2010-12-10 05:32:46
【问题描述】:
我为 Firefox 开发了一个小插件,我在其中保存了一些 http 代理,因为我经常使用它们。所有代理一旦加载到 ff 中,就会在弹出窗口中询问用户名和密码。我的插件已保存此信息,因此我需要找出一种方法来设置显示的通知框中输入字段的值,以便对代理服务器进行身份验证,并避免每次更改时都必须手动输入这些详细信息代理。
我必须承认我也是 XUL 和 javascript 的绝对初学者。我在网上搜索并测试了各种 sn-ps 但我无法获取通知内容,确定它是否是我要查找的内容并输入正确的值。
我有一段代码可能接近我想要的,但它似乎不起作用:
function getNotificationBox() {
const Ci = Components.interfaces;
function getChromeWindow(aWindow) {
var chromeWin = aWindow
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebNavigation)
.QueryInterface(Ci.nsIDocShellTreeItem)
.rootTreeItem
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIDOMWindow)
.QueryInterface(Ci.nsIDOMChromeWindow);
return chromeWin;
}
var notifyWindow = window.top;
var chromeWin = getChromeWindow(notifyWindow);
var notifyBox = chromeWin.getNotificationBox(notifyWindow);
return notifyBox;
}
function clickNotificationButton() {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var box = getNotificationBox();
var bar = box.getNotificationWithValue("is requesting a username and password");
var button = bar.getElementsByTagName("button").item("OK");
button.doCommand();
}
window.addEventListener("DOMNodeInserted", function(e) { clickNotificationButton;
}, false);
您在此处看到的“正在请求用户名和密码”的字符串是通知窗口中显示的文本的一部分。如果我在这里做错了什么,有人可以发现吗?
非常感谢任何帮助。谢谢!
【问题讨论】:
标签: javascript firefox xul