8
votes

Existe-t-il un équivalent pour 'Setbadgetext' de Chrome dans Firefox Add-On SDK?

Méthode de chrome chrome.browseraction.setbadgetext Superpositions Texte sur le dessus de l'icône Extensions. Ceci est pratique si vous souhaitez afficher des courriers non lus totaux par exemple.

y a-t-il une méthode équivalente lors du développement d'un Firefox Addon SDK extension, ou quelle est la meilleure façon de changer l'icône au moment de l'exécution?

A partir de la version 1.11 de SDK, je ne trouve pas une méthode similaire dans Firefox Add-On SDK API.


1 commentaires

À partir de Firefox 48, vous pouvez utiliser Webextensions pour créer des add-ons. Vous pouvez utiliser l'API Browseraction et faire le même chrome à l'aide de ce code: Browseraction.setbadgetext () . Découvrez la page sur MDN


4 Réponses :


3
votes

Non, il n'y a pas d'équivalent direct dans le SDK add-on. Cependant, le widget Module que vous utilisez probablement peut afficher n'importe quel contenu HTML et non seulement une icône. Et vous pouvez script que le contenu HTML, par exemple montrer du texte si nécessaire. Je l'ai essayé avec ce qui suit lib / main.js : xxx

il utilise icon.html fichier pour afficher l'icône et envoie un SetBadgetext Message au script de contenu ci-joint chaque fois que le texte en haut de l'icône doit changer. Voici le fichier data / icon.html J'ai testé avec: xxx

Je n'ai pas investi trop d'effort pour que le texte ressemble au texte Texte de badge, vous pouvez probablement améliorer le style. Le texte est masqué par défaut (j'ai utilisé le HTML5 caché attribut pour la simplicité). Et le script de contenu n'est pas trop compliqué non plus: xxx

Il reçoit le message SetBadgetext et définit le texte dans le document HTML en conséquence. Il masquera également l'élément Badgetext s'il reçoit null comme texte de badge.


3 commentaires

Cette approche est-elle applicable à un bouton de la barre d'outils (qui se trouve à droite de la barre d'adresse)?


@Petrabdulin: Non. N ° The Toolbarbutton Bibliothèque (ne faisant pas partie du SDK add-on, mais vous voulez probablement dire celui-ci) Créer uniquement des boutons XUL xul, pas très fantaisie.


Oui, l'add-on nous la création est une sorte de mixup (je suppose) de Add-on SDK et XUL. Néanmoins je vous remercie pour la réponse. Aussi, je vous remercie pour votre merveilleux Adblock plug-in plus que je l'utilise depuis que je l'ai commencé à utiliser Firefox en 2008 :)



7
votes

note forte>: Cette réponse ne fonctionne plus dans Firefox 38+ en raison de la suppression du module de widget. Utilisez L'un des boutons du module UI a > Au lieu.


J'ai porté le chrome.browseraction code> API à Firefox et le publié comme un module de jetpack, voir https://github.com/rob--w/browser-action-jplib strong> p >

Si vous connaissez l'API code> chrome.browseraction code>, l'utilisation de ce module ne peut pas être plus facile. Même si vous n'avez jamais créé un complément Firefox avant, vous pouvez commencer quelques minutes: p>

  1. Installez le SDK add-on ( INSTRUCTIONS DE MOZILLA ). LI>
  2. Activez le SDK (en exécutant addon-sdk code>) et créez les fichiers de la chaudière ( cfx init code>). LI>
  3. Téléchargez ma bibliothèque de jetpack de navigateur-action ( INSTRUCTIONS ) . li>
  4. Modifiez votre package.json code> et ajouter "navigateur-action" code> comme une dépendance. li> OL>

    À ce stade, vous avez mis en place toutes les conditions préalables. Ce qui reste est la création de l'action du navigateur. P>

    Exemple h2>

    Cet add-on ajoute une action de navigateur près de la barre de localisation, qui affiche une fenêtre contextuelle. Lorsque vous tapez quelque chose dans le champ Entrée dans cette fenêtre contextuelle, le titre de l'onglet est modifié de la valeur du champ. P>

    lib / main.js code> h3> xxx Code >Data/popup.htmlLe

    <!-- (Example) Please avoid inline JavaScript/CSS in your production code -->
    <body style="width:200px;">
      Demo: This is a popup page.<br>
      Uses <code>extension.sendMessage</code> to notify the background page,
      which in turn changes the current tab's title to below value <br>
      <input onkeyup="extension.sendMessage(this.value);" style="display:block;">
    </body>
    
    est une courte scrupule du résultat (Remarque: la couleur de l'info-bulle est légèrement éteinte; enregistré avec Byzanz

): p>

 ScreenCast p> p>


0 commentaires

6
votes

in Firefox 36 Vous pouvez ajouter des badges (texte) sur les boutons de votre addon .. xxx

https://developer.mozilla.org/en-us/add-ons/sdk/low-level_apis/ ui_button_action # badged_buttons


2 commentaires

Parfait! Exactement ce que je cherchais. Est-il un moyen de placer le badge au fond?


Afin de fournir une interface utilisateur cohérente et UX, la position badge ne peut pas être changé - je ne pense pas que vous pouvez changer cela dans Google Chrome, mais corrigez-moi si je me trompe. Toutefois, si vous utilisez l'API de bas niveau, vous peut se fait une feuille de style pour le navigateur, et le changement de cette position; mais ce n'est pas quelque chose que je recommande pour deux raisons: d'abord, comme on dit, l'interface utilisateur doit être cohérente. Deuxièmement, vous utilisez CSS qui dépend de la mise en œuvre de badge, et si cela change, vous aurez votre position de cassé - pour l'enregistrement, il Changeons déjà entre Fx Libération et nuit.



0
votes

Il est pas documenté dans MDN, mais l'action et bouton à bascule accepte également icône propriété comme base64 image codée. En sachant ce fait, il est facile de créer, par exemple, la page de travail, et d'utiliser l'élément de toile html pour dessiner infobulle sur une icône d'image, et de revenir qu'avec canvas.toDataURL () méthode .


0 commentaires