Domanda

Sto facendo dei test sulle barre degli strumenti di Firefox per motivi di apprendimento e non riesco a trovare alcuna informazione su come memorizzare il contenuto di un " cerca " menu a discesa all'interno del profilo dell'utente.

Esiste un tutorial su come risolvere questo problema?

È stato utile?

Soluzione

Dato che ci vuole un bel po 'per ottenere una risposta, sono andato a indagare da solo. Ecco quello che ho adesso. Non tutto è chiaro per me ma funziona.

Supponiamo che tu abbia un < textbox > in questo modo, sul tuo .xul:

<textbox id="search_with_history" />

Ora devi aggiungere altri attributi per abilitare la cronologia.

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

Questo ti dà il minimo per abilitare una cronologia su quella casella di testo.
Per qualche motivo, ed è qui che la mia ignoranza mostra, la funzione evento onTextEntered deve avere il parametro ad esso chiamato & Quot; param & Quot ;. Ho provato & Quot; evento & Quot; e non ha funzionato.
Ma questo da solo non funzionerà da solo. Uno deve aggiungere un po 'di Javascript per aiutare con il lavoro.

// 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);
}

Questo è il minimo assoluto per ottenere una cronologia in corso.

Altri suggerimenti

Gustavo, Volevo fare la stessa cosa - ho trovato una risposta qui sui forum di supporto di Mozilla. (Modifica: volevo salvare la mia cronologia delle ricerche per interesse, non perché volevo sapere come funzionano le barre degli strumenti di Firefox, come hai detto.)

Fondamentalmente, quei dati sono memorizzati in un file di database sqlite chiamato formhistory.sqlite (nella directory del profilo di Firefox). Puoi utilizzare l'estensione SQLite Manager di Firefox per recuperare ed esportare i dati: https: //addons.mozilla .org / firefox / addon / 5817

Puoi esportarlo come file CSV (valori separati da virgola) e aprirlo con Excel o altri software.

Ciò ha l'ulteriore vantaggio di salvare anche la cronologia dei dati che hai inserito in altri moduli / campi su siti, come il campo Cerca su Google, ecc., se questi dati ti interessano.

La soluzione di Gustavo è buona, ma document.getElementById ('search_with_history'). value; manca una 't' in getElementById

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top