2008-09-23 14 views

Répondre

1

Comme il faut un peu de temps pour obtenir une réponse, je suis allé enquêter moi-même. Voici ce que j'ai maintenant. Tout n'est pas clair pour moi mais ça marche.

Supposons que vous avez une zone de texte < > comme celui-ci, 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" 
/> 

Ceci vous donne le minimum pour activer un historique sur cette zone de texte.
Pour une raison quelconque, et voici où mon ignorance montre, la fonction d'événement onTextEntered doit avoir le param appelé "param". J'ai essayé "événement" et cela n'a pas fonctionné.
Mais cela seul ne fera pas le travail par lui-même. Il faut ajouter du Javascript pour aider au 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); 
} 

Ceci est le minimum absolu pour avoir une histoire en cours.

0

Gustavo, Je voulais faire la même chose - j'ai trouvé une réponse here sur les forums de support de Mozilla. (Edit: Je voulais sauver mon historique de recherche par intérêt, pas parce que je voulais apprendre comment fonctionnent les barres d'outils 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 a également l'avantage d'enregistrer l'historique des données que vous avez entrées dans d'autres formulaires/champs sur des sites, tels que le champ de recherche sur Google, etc., si ces données vous intéressent.

0

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

+0

Merci Jason, corrigé. La prochaine fois pourriez-vous utiliser les commentaires et non une réponse? –