Сохраните раскрывающуюся историю на панели инструментов Firefox - PullRequest
0 голосов
/ 23 сентября 2008

Ради обучения я провожу некоторые тесты на панелях инструментов Firefox и не могу найти никакой информации о том, как сохранить содержимое раскрывающегося списка "поиск" в профиле пользователя.

Есть ли какой-нибудь учебник о том, как с этим разобраться?

Ответы [ 3 ]

1 голос
/ 23 сентября 2008

Поскольку для получения ответа требуется совсем немного, я пошел и исследовал его сам. Вот что у меня сейчас. Мне не все ясно, но это работает.

Давайте предположим, что у вас есть на вашем .xul:

<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, называемый «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);
}

Это абсолютный минимум для продолжения истории.

0 голосов
/ 09 января 2009

Решение Густаво это хорошо, но document.getElemenById ('search_with_history'). Value; отсутствует 't' в getElementById

0 голосов
/ 29 октября 2008

Густаво, Я хотел сделать то же самое - я нашел ответ здесь на форумах поддержки Mozilla. (Изменить: я хотел сохранить свою историю поиска из интереса, а не потому, что хотел узнать, как работают панели инструментов Firefox, как вы сказали.)

По сути, эти данные хранятся в файле базы данных sqlite с именем formhistory.sqlite (в каталоге вашего профиля Firefox). Вы можете использовать расширение SQLite Manager для Firefox для извлечения и экспорта данных: https://addons.mozilla.org/firefox/addon/5817

Вы можете экспортировать его как файл CSV (значения, разделенные запятыми) и открыть его в Excel или другом программном обеспечении.

Это дает дополнительное преимущество, так как сохраняет историю данных, которые вы вводили в другие формы / поля на сайтах, например, в поле поиска в Google и т. Д., Если эти данные вам интересны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...