Enregistrer l'historique de la liste déroulante dans une barre d'outils Firefox

StackOverflow https://stackoverflow.com/questions/120170

  •  02-07-2019
  •  | 
  •  

Question

Je teste des barres d’outils Firefox pour apprendre et je ne trouve aucune information sur la manière de stocker le contenu d’une recherche & "; rechercher &"; liste déroulante dans le profil de l'utilisateur.

Existe-t-il un tutoriel sur la façon de résoudre ce problème?

Était-ce utile?

La solution

Comme il faut beaucoup de temps pour obtenir une réponse, je me suis renseigné moi-même. Voici ce que j'ai maintenant. Tout n’est pas clair pour moi, mais cela fonctionne.

Supposons que vous avez une < textbox > comme ça, sur votre .xul:

<textbox id="search_with_history" />

Vous devez maintenant ajouter d'autres attributs pour activer l'historique.

<textbox id="search_with_history" type="autocomplete"
    autocompletesearch="form-history"
    autocompletesearchparam="Search-History-Name"
    ontextentered="Search_Change(param);"
    enablehistory="true"
 />

Cela vous donne le minimum pour activer un historique dans cette zone de texte.
Pour une raison quelconque, et voici où mon ignorance le montre, la fonction événement onTextEntered doit avoir le paramètre param appelé & "Param &". J'ai essayé & Quot; événement & Quot; et ça n'a pas marché.
Mais cela seul ne fonctionnera pas par lui-même. Il faut ajouter du Javascript pour aider avec le travail.

// This is the interface to store the history
const HistoryObject = Components.classes["@mozilla.org/satchel/form-history;1"]
    .getService(
        Components.interfaces.nsIFormHistory2 || Components.interfaces.nsIFormHistory
    );
// The above line was broken into 4 for clearness.
// If you encounter problems please use only one line.

// This function is the one called upon the event of pressing <enter>
// on the text box
function Search_Change(event) {
    var terms = document.getElementById('search_with_history').value;
    HistoryObject.addEntry('Search-History-Name', terms);
}

C’est le minimum absolu pour avoir une histoire en cours.

Autres conseils

Gustavo, Je voulais faire la même chose. J'ai trouvé une réponse ici sur les forums de support de Mozilla. (Edit: je voulais sauvegarder l'historique de mes recherches par intérêt, non pas parce que je voulais apprendre comment fonctionnent les barres d'outils de Firefox, comme vous l'avez dit.)

Fondamentalement, ces données sont stockées dans un fichier de base de données sqlite appelé formhistory.sqlite (dans votre répertoire de profil Firefox). Vous pouvez utiliser l'extension Firefox SQLite Manager pour récupérer et exporter les données: https: //addons.mozilla .org / firefox / addon / 5817

Vous pouvez l'exporter sous forme de fichier CSV (valeurs séparées par des virgules) et l'ouvrir avec Excel ou un autre logiciel.

Cela présente l'avantage supplémentaire de sauvegarder également l'historique des données que vous avez saisies dans d'autres formulaires / champs sur des sites, tels que le champ Rechercher sur Google, etc., si ces données vous intéressent.

La solution de Gustavo est bonne, mais document.getElemenById ('search_with_history'). value; manque un 't' dans getElementById

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top