Как вы удаляете объект из дерева в XUL с помощью клавиши удаления? - PullRequest
2 голосов
/ 26 июля 2010

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

Ответы [ 3 ]

1 голос
/ 26 июля 2010

На самом деле, я понял это.Я добавил это к элементу tree в 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);
    }
  }
}
0 голосов
/ 29 июля 2010

I только что заметил это при просмотре документации для nsITreeView:

performAction()

API команд, который можно использовать для вызывать команды на выбор. дерево автоматически вызовет это метод, когда определенные клавиши нажаты. Например, когда клавиша DEL нажатие, будет выполнено действие со строкой удаления.

void performAction(in wstring action);

Так что я думаю, что это еще один способ сделать это:

void performAction(action) {
  if (action == 'delete') {
    // delete the thing
  }
}

хотя я не проверял это.

0 голосов
/ 26 июля 2010

Используйте элемент key для определения сочетаний клавиш для окна. См. Учебник здесь .

...