0

学習のために Firefox ツールバーでいくつかのテストを行っていますが、ユーザーのプロファイル内に「検索」ドロップダウンの内容を保存する方法に関する情報を見つけることができません。

これを整理する方法に関するチュートリアルはありますか?

4

3 に答える 3

1

回答を得るのにかなり時間がかかるので、私は行って自分で調査しました。これが私が今持っているものです。すべてが私には明らかではありませんが、うまくいきます。

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

これは、履歴を取得するための絶対的な最小値です。

于 2008-09-23T14:31:27.643 に答える
0

Gustavo の解決策は優れていますが、document.getElemenById('search_with_history').value; getElementById に「t」がありません

于 2009-01-09T20:33:40.957 に答える
0

Gustavo さん、私も同じことをしたかったのですが、Mozilla サポート フォーラムで回答を見つけまし。(編集:あなたが言ったように、Firefoxのツールバーがどのように機能するかを学びたかったからではなく、興味をそそるために検索履歴を保存したかったのです。)

基本的に、そのデータは formhistory.sqlite という名前の sqlite データベース ファイル (Firefox プロファイル ディレクトリ内) に保存されます。Firefox 拡張機能 SQLite Manager を使用してデータを取得およびエクスポートできます: https://addons.mozilla.org/firefox/addon/5817

CSV(カンマ区切り値)ファイルとしてエクスポートし、Excel などのソフトウェアで開くことができます。

これには、サイトの他のフォーム/フィールド (Google の検索フィールドなど) に入力したデータの履歴も保存されるという追加の利点があります (このデータに関心がある場合)。

于 2008-10-29T18:58:59.213 に答える