2010-01-16 20 views
11

Chrome Browser Aktionen bieten einen wirklich schönen Pop-up-Effekt standardmäßig.Replizieren von Google Chrome Browser Aktionen Popup-Effekt in einer Firefox-Erweiterung

tot Images Bild Link entfernt

  • Bewegen der Maus über das Symbol in der Symbolleiste Effekt einen sauberen schweben bietet.

  • das Symbolleiste Symbol klicken, zeigt eine schöne Animation, die die Popup-HTML-Datei öffnet.

  • Das Popup wird mit der Taste ausgerichtet, die gedrückt wird.

  • die Symbolleiste Symbol klicken, blendet wieder das Popup-out.

Haben Sie sich Gedanken darüber gemacht, wie Sie diesen Effekt mit Firefox-Erweiterungen annähern können? Hat jemand erfolgreich etwas Ähnliches erreicht?

Danke.

+1

Ich habe ein Jetpack-Modul veröffentlicht, das die 'chrome.browserAction'-API und das Aussehen zu Firefox bringt, siehe [diese Antwort] (http://Stackoverflow.com/a/16787760/938089) für eine Demo. –

Antwort

4

Falls jemand dies recherchiert und versucht, die Antwort herauszufinden, hat die Verwendung eines Panels innerhalb der Toolbarpalette in der Datei browser.xul für mich gut funktioniert.

+5

Ich habe versucht, eine Antwort auf diese Frage zu finden. Im Vergleich zu Chrome scheinen Firefox-Erweiterungen ein großer Schmerz zu sein. – cnanney

+1

Danke Chris. Für diejenigen von uns, die mit FF beginnen, können Sie Demo-Code zeigen? Prost. – mikemaccana

+3

Demo wäre nett –

7

Für alle, die nur mit Ihrem ersten Firefox-Erweiterung beginnen, wie ich hier getan hat, ist ein Beispielcode:

yourextname \ chrome \ content \ browser.xul

<?xml version="1.0"?> 
<?xml-stylesheet href="chrome://yourextname/skin/toolbar.css" type="text/css"?> 

<overlay id="yourextname_overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 
    <popupset> 
     <menupopup id="yourextname_menu_popup"> 
      <menuitem label="Website" oncommand="gBrowser.selectedTab = gBrowser.addTab('http://www.your-website.com/');" /> 
      <menuseparator /> 
      <menuitem label="Options" oncommand="window.open('chrome://yourextname/content/options.xul', 'Options', 'dialog,chrome,modal,titlebar,toolbar,centerscreen=yes');" /> 
     </menupopup> 

     <panel id="yourextname_popup" noautohide="false" noautofocus="true"> 
      <label control="vvvname" value="Name:"/><textbox id="vvvname"/> 
     </panel> 
    </popupset> 

    <toolbarpalette id="BrowserToolbarPalette"> 
     <toolbarbutton id="yourextname_toolbar_button" class="toolbarbutton-1" context="yourextname_menu_popup" oncommand="document.getElementById('yourextname_popup').openPopup(document.getElementById('yourextname_toolbar_button'), 'after_start', 0, 0, false, false);" label="button name" tooltiptext="tooltip" /> 
    </toolbarpalette> 
</overlay> 

yourextname \ Haut \ toolbar.css
Dies wird Symbol in die Symbolleiste auf die Schaltfläche hinzufügen:

#yourextname_toolbar_button { 
    list-style-image:url(chrome://yourextname/skin/icon_024.png); 
} 

toolbar[iconsize="small"] #yourextname_toolbar_button { 
    list-style-image:url(chrome://yourextname/skin/icon_016.png); 
} 

yourextname \ chrome.manifest

content yourextname chrome/content/ 
overlay chrome://browser/content/browser.xul chrome://yourextname/content/overlay.xul 

skin yourextname classic/1.0 skin/ 
style chrome://global/content/customizeToolbar.xul chrome://yourextname/skin/toolbar.css 

Hinweis: Stellen Sie sicher, dass Sie alle "yourextname" Strings mit etwas einzigartig, am besten mit Ihrem Nebenstellennamen ersetzen.