#firefox #firefox-addon #xul
#firefox #firefox-аддон #xul
Вопрос:
Когда я нажимаю enter, он отлично работает. Однако я также хочу выполнить поиск, нажав кнопку поиска в текстовом поле. Я добавил oncommand
атрибут, он выполнил поиск, однако после завершения поиска кнопка поиска превратилась в крест. Я щелкнул крестиком, он снова выполнил поиск. Я проверил документацию, однако не смог найти никакой информации о том, как связать мое нажатие кнопки поиска с событием поиска.
<textbox id="txt1" type="search" searchbutton="true" editable="true"
onkeypress="keyHandler(event);" />
Комментарии:
1. Вы можете выполнить это многими способами!! пожалуйста, опубликуйте свой сценарий.
Ответ №1:
Первое примечание: не обрабатывайте клики или нажатия клавиш напрямую, всегда используйте command
событие — это гарантирует, что поведение элемента соответствует ожиданиям пользователя.
<textbox type="search">
предполагается, что выполнение одного и того же поиска дважды не имеет смысла. Итак, после выполнения поиска кнопка поиска превращается в крест, нажатие на этот крест очищает текст поиска (и, конечно, запускает новое command
событие). Если вместо нажатия крестика вы измените текст поиска, вы снова получите обычную кнопку поиска. Таким образом, ваш command
обработчик должен просмотреть текст поиска: показать результаты по умолчанию, если текст пуст (текст поиска очищается вручную или нажатием крестика) и выполнить новый поиск, если текст непустой.
Комментарии:
1. Это тот ответ, который мне был нужен, однако я не могу связать
command
сsearchbutton
.2. @Ghokun: Вам не нужно,
command
событие для<textbox>
элемента будет инициировано автоматически для всех соответствующих случаев, включая нажатие пользователем кнопки поиска.3. Я проверил еще раз, searchbutton запускает команду, но я не получаю соответствующих результатов. Я думаю, моя функция поиска нуждается в некоторой настройке. Спасибо.
Ответ №2:
Это решение может не соответствовать вашей проблеме, но это даст представление о завершении вашей задачи.
Текстовое поле XUL:
<textbox id="textbox" type="search" oncommand="SearchKeyword(this)"/>
Js:
function SearchKeyword(oElem) // Function for search for the characters
{
var filter = document.getElementById("textbox");
filter.setAttribute("value", oElem.value);
document.getElementById("myTodoListTree").builder.rebuild();
}