Firefox ツールバーにドロップダウン履歴を保存する
質問
学習のために Firefox ツールバーでいくつかのテストを行っていますが、ユーザーのプロファイル内に「検索」ドロップダウンの内容を保存する方法に関する情報が見つかりません。
これを解決する方法についてのチュートリアルはありますか?
解決
答えを得るまでにかなり時間がかかるので、自分で調べてみました。これが今私が持っているものです。すべてが私には明らかではありませんが、うまくいきます。
.xul に次のような <textbox> があると仮定します。
<textbox id="search_with_history" />
履歴を有効にするには、他の属性を追加する必要があります。
<textbox id="search_with_history" type="autocomplete"
autocompletesearch="form-history"
autocompletesearchparam="Search-History-Name"
ontextentered="Search_Change(param);"
enablehistory="true"
/>
これにより、そのテキストボックスで履歴を有効にするための最低限の情報が得られます。
何らかの理由で、ここで私の無知が露呈しますが、onTextEntered イベント関数には「param」と呼ばれるパラメータが必要です。「イベント」を試してみましたが、うまくいきませんでした。
しかし、それだけでは仕事は成り立ちません。この作業を支援するには Javascript を追加する必要があります。
// 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);
}
これは歴史を継続するための絶対的な最低限のものです。
他のヒント
グスタボ、私は同じことをしたかった - 私は答えを見つけました ここ Mozilla サポート フォーラムで。(編集:あなたが言ったように、Firefox のツールバーがどのように機能するかを知りたかったからではなく、興味があって検索履歴を保存したかったのです。)
基本的に、そのデータは、formhistory.sqlite という sqlite データベース ファイル (Firefox プロファイル ディレクトリ内) に保存されます。Firefox 拡張機能 SQLite Manager を使用して、データを取得およびエクスポートできます。 https://addons.mozilla.org/firefox/addon/5817
CSV (カンマ区切り値) ファイルとしてエクスポートし、Excel または他のソフトウェアで開くことができます。
これには、Google の検索フィールドなど、サイト上の他のフォーム/フィールドに入力したデータに興味がある場合、そのデータの履歴も保存されるという追加の利点があります。
Gustavo の解決策は良いですが、 document.getElemenById('search_with_history').value; getElementById に「t」がありません