Отключить команды contentEditable

0

Я бы удостоверился, что определенный элемент html с атрибутом contentEditable HTML5, пользователь не может выполнить "команды" (например: CTRL + B, CTRL + я и т.д.). Я бы сделал это с помощью функций jQuery или javascript. Как я могу это сделать? спасибо

Теги:
contenteditable

1 ответ

1
Лучший ответ

Вы можете прослушивать ключевые события, и если вход соответствует команде, вы можете предотвратить-умолчанию:

Пример кода (только в Chrome):

div.addEventListener('keydown', keyHandler);

function keyHandler(e) {
  if (matchesCmd(e)) {
    e.preventDefault();
  }
}

function matchesCmd(e) {              
  return e.ctrlKey && e.which==86; // Ctrl-v
}

Демо (проверено только в Chrome): http://jsbin.com/Akejur/1/edit

  • 0
    Спасибо за Ваш ответ. Поэтому мне нужен список команд CTRL + * и добавить его в скрипт, верно? Еще раз спасибо
  • 0
    Метод matchCmd должен возвращать true, если событие нажатия клавиши соответствует команде (как вы ее определяете), и false в противном случае. Если какая-либо клавиша, нажатая при помощи ctrl, является командой, просто return e.ctrlKey и все готово. Вы также должны посмотреть, как ваша библиотека по выбору абстрагирует события; addEventListener может быть недоступен, у события могут быть свойства или значения по-разному для одних и тех же ключей и т. д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню