Die Add-on-Leiste
Firefox 4 hat die Statusleiste am unteren Rand des Browserfensters zugunsten einer neuen Symbolleiste am unteren Rand des Fensters entfernt. Diese neue Symbolleiste mit der ID "addon-bar" ist ein standardmäßiges XUL-<toolbar>
; Add-ons können Inhalte darin einfügen und der Benutzer kann beim Anpassen der Symbolleisten Schaltflächen hineinziehen. Dies ist der Hauptunterschied zwischen der Add-on-Leiste und der alten Statusleiste; Sie können jetzt jedes XUL-Element einfügen, da es sich um eine standardmäßige Symbolleiste handelt.
Hinweis: Vorläufig ist ein Statusleisten-Shim enthalten, damit Add-ons, die auf das Vorhandensein der Statusleiste angewiesen sind, weiterhin funktionieren.
Hinzufügen eines Elements zur Add-on-Leiste
Die Add-on-Leiste ist eine XUL-Symbolleiste mit der ID "addon-bar". Der folgende Code sucht das zuletzt verwendete Fenster und fügt der Add-on-Leiste ein neues Element hinzu, das den Text "Hello world!" mit einem XUL-<label>
-Element anzeigt.
// Find the most recently used window
var mediator = Components.classes[
"@mozilla.org/appshell/window-mediator;1"
].getService(Components.interfaces.nsIWindowMediator);
var doc = mediator.getMostRecentWindow("navigator:browser").document;
// Get the add-on bar for that window
var addonBar = doc.getElementById("addon-bar");
// Construct the new toolbar item
var newItem = doc.createElement("toolbaritem");
var itemLabel = doc.createElement("label");
// Add the item to the toolbar and set its text label
newItem.appendChild(itemLabel);
addonBar.appendChild(newItem);
itemLabel.value = "Hello world!";
Um die Schaltfläche nur einmal hinzuzufügen, erstellen Sie eine boolesche Voreinstellung, um zu überprüfen, ob es sich um den ersten Start handelt. Zum Beispiel:
var firstRun = Services.prefs.getBoolPref("extensions.YOUREXT.firstRun");
var curVersion = "0.0.0";
if (firstRun) {
Services.prefs.setBoolPref("extensions.YOUREXT.firstRun", false);
Services.prefs.setCharPref("extensions.YOUREXT.installedVersion", curVersion);
/* Code related to firstRun */
} else {
try {
var installedVersion = Services.prefs.getCharPref(
"extensions.YOUREXT.installedVersion",
);
if (curVersion > installedVersion) {
Services.prefs.setCharPref(
"extensions.YOUREXT.installedVersion",
curVersion,
);
/* Code related to upgrade */
}
} catch (ex) {
/* Code related to a reinstall */
}
}
Anleitung zur Verwendung eines Overlays pro Firefox-Version
Um die Add-on-Leiste zu unterstützen und gleichzeitig mit Firefox 3.6 und älteren Versionen kompatibel zu bleiben, sind zwei Overlays erforderlich. Die chrome.manifest-Datei kann mithilfe von Manifest-Flags angeben, welche Datei von welcher Firefox-Version verwendet wird:
overlay chrome://browser/content/browser.xul chrome://myaddon/content/myaddon/overlay-old.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} appversion<4.0 overlay chrome://browser/content/browser.xul chrome://myaddon/content/myaddon/overlay.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} appversion>=4.0
Hinweis: Die Appversion muss mindestens 2-stellig sein, da sie sonst nicht mit Versionen von Gecko vor 1.8.0.13 und 1.8.1.5 funktioniert.
Hinzufügen einer Schaltfläche standardmäßig
Unterschiede im Erscheinungsbild
- Da der Browser keinen großen Teil der Leiste mehr mit Statusinformationen belegt, steht der gesamte Bereich für Add-ons zur Verfügung.
- Die Add-on-Leiste ist standardmäßig leer und ausgeblendet; der Benutzer muss sich entscheiden, sie sichtbar zu machen.
- Installiert sich ein Add-on ohne Neustart direkt in der Add-on-Leiste und ist die Leiste noch nicht sichtbar, wird die Leiste automatisch sichtbar.
- Wenn durch das Deinstallieren eines Add-ons ohne Neustart die Anzahl der Elemente in der Add-on-Leiste auf null sinkt, wird die Leiste automatisch ausgeblendet.
Siehe auch
- Die Firefox 4 Add-on-Leiste für Entwickler von Mike Kaply