【发布时间】:2013-03-05 09:03:57
【问题描述】:
我有一个显示各种警报的 Firefox 插件。有没有一种方法可以让用户选择他们希望使用的警报类型?目前我有两种类型的警报。标准 JavaScript 警报和 alertNotification。有没有一种方法可以让菜单项具有用户可以选择的两种不同的警报。不知道我会如何在 JavaScript 中编写代码。设置页面在 XUL 中。
当前两个警报的代码: 带有两个警报的代码:
if(resultEmail) {
prompts.alert(null, "Test", "Email Address Detected");
//Other form of alert.
var alertsService = Components.classes["@mozilla.org/alerts-service;1"].
getService(Components.interfaces.nsIAlertsService);
alertsService.showAlertNotification("",
"Test","Email Detected",
false, "", null, ""); }
如何设置用户可以选择他们希望使用的警报并在 XUL 窗口中进行设置?不确定这是否可能。
目前已在下面实现此功能,但仍无法让用户选择他们希望使用的警报。
选择哪个警报的当前代码:
var prefManager = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
var customAlert = prefManager.getBoolPref("extensions.yourextension.customalert");
if(resultEmail) {
if(!!customAlert)
{
// Show your alert
prompts.alert(null, "Privacy Exposure Detected", "Email Address Detected \n\nThis data is a privacy risk and should be reviewed");
} else {
// Show built in alert system
var alertsService = Components.classes["@mozilla.org/alerts-service;1"].
getService(Components.interfaces.nsIAlertsService);
alertsService.showAlertNotification("chrome://spellchecker/content/images/stop.png",
"Privacy Exposure Detected",vrs_getWin.document.getElementById(elementT).value+ "This data is a privacy risk",
false, "", null, "");
}
XUL 窗口代码:
<vbox>
<hbox>
<label control="custom-alert" value="Custom Alerts"/>
<checkbox id="custom-alert" preference="customalert"/>
</hbox>
<button id="checkerOkButton" label="&savebutton.label;" oncommand="namespace_highlight.setPrefs();"/>
<button id="checkerCancelButton" label="&cancelbutton.label;" oncommand="window.close();"/>
</hbox>
</vbox>
问题是复选框似乎没有保存输入,它只是默认为标准警报。
任何帮助将不胜感激
【问题讨论】:
-
setPrefs() 中有什么?如果您查看 about:config(仔细),您可以查看是否设置了该布尔首选项。如果不是,则需要检查 setPrefs 函数以了解原因
-
我目前在 setPrefs() setPrefs: function(){ namespace_highlight.setbgColor();窗口.close(); },
-
这是附加组件的另一部分。
-
我需要在这个 setPrefs() 函数中添加什么?
标签: javascript firefox-addon xul