Я создаю расширение Firefox и хотел бы разрешить пользователю удалять объекты из дерева с помощью ключа удаления. В настоящее время я вызываю функцию, когда пользователь нажимает кнопку, но хотел бы позволить им просто нажать клавишу удаления на своей клавиатуре.Как удалить объект из дерева в XUL с помощью ключа удаления?
ответ
Собственно, я понял. Я добавил это к дерева элемента в XUL:
onkeypress="deleteSelection(event);"
Вот мой Javascript:
function deleteSelection(event){
if(event.keyCode == KeyEvent.DOM_VK_DELETE)
{
var t = document.getElementById('gs-scrapeToolbar-middlePanel-dom-tree');
if (t.currentIndex > -1) {
treeView.model.splice(t.currentIndex, 1);
treeView.treeBox.rowCountChanged(t.currentIndex, -1);
}
}
}
Используйте ключевой элемент для определения сочетаний клавиш для окна. See tutorial here.
Я just noticed this, глядя на документацию для nsITreeView:
performAction()
API-интерфейс команды, который может использоваться для вызывать команды по выбору. Дерево будет автоматически вызывать этот метод при нажатии определенных клавиш. Например, когда нажата клавиша DEL , performAction будет называться со строкой delete.
void performAction(in wstring action);
Так что я думаю, что это еще один способ, которым Вы могли бы сделать это:
void performAction(action) {
if (action == 'delete') {
// delete the thing
}
}
хотя я не проверял.
На самом деле, похоже, что это, вероятно, не лучший способ сделать это. https://bugzilla.mozilla.org/show_bug.cgi?id=406588 – MatrixFrog
- 1. Как удалить элемент из вложенного дерева XUL?
- 2. Удалить объект в NHibernate только с помощью первичного ключа
- 3. Удаление ключа из дерева B +
- 4. Как удалить значок удаления в виде одного дерева дерева
- 5. Как удалить детей из дерева
- 6. Как удалить объект с помощью внешнего первичного ключа в JPA?
- 7. Удалить объект из массива с помощью JavaScript
- 8. Удалить объект без удаления внешнего ключа ссылки на него
- 9. Не удается удалить объект в IndexedDB с помощью ключа auto_increment
- 10. Как вручную удалить объект blob из дерева в Git?
- 11. Как удалить несколько свойств из объекта с помощью одного удаления?
- 12. Как избежать удаления узла дерева дерева?
- 13. Как удалить объект json с помощью python?
- 14. Удалить родителя из дерева AVL
- 15. Как удалить подстроку из дерева суффикса?
- 16. Как cascade удалить объект из базы данных с помощью @ManyToOne
- 17. Как удалить строку с помощью первичного ключа с использованием внешнего ключа из другой таблицы?
- 18. удалить значение dic без удаления ключа
- 19. Удалить дубликаты из двоичного дерева
- 20. Удалить из двоичного дерева C#
- 21. как удалить объект из NSDictionary
- 22. Как удалить объект из файла?
- 23. Удалить диапазон строк с помощью префиксного ключа
- 24. Protect объект из каскада удаления в Hibernate
- 25. Как удалить строку из datagridview с помощью кнопки удаления?
- 26. Как удалить запись из документа XML с помощью кнопки удаления?
- 27. Удалить объект из массива с помощью JavaScript
- 28. Посмотрите объект с помощью ключа в Firebase
- 29. Как уловить Удалить событие ключа в контроллере панели дерева
- 30. удалить объект из массива с помощью javascript?
Если вы хотите, чтобы ключ удаления имел эффект, когда дерево имеет фокус (что, по-моему, вероятно, то, что пользователи ожидали бы), тогда было бы лучше использовать атрибут 'onkeypress', правильно? Из вашей ссылки: «Ключевые события отправляются только элементу с фокусом ... Если ни один элемент не сфокусирован, ключевое событие вместо этого будет нацелено на сам документ XUL. В этом случае вы можете добавить прослушиватель событий к окну. Обычно, если вы хотите отвечать на клавиши по всему миру, вы будете использовать комбинацию клавиш, как описано ранее ». Поэтому я * думаю * ответ Джоша имеет больше смысла в этом случае. – MatrixFrog
Наверное, так; У меня недостаточно информации о его пользовательском интерфейсе и намерениях рассказать вам, был ли он намереваться быть общим ярлыком для окна или нет. – pc1oad1etter