Поведение клавиши Tab в контроле редактирования браузера - PullRequest
5 голосов
/ 27 декабря 2008

Веб-браузеры хороши как тонкие клиенты для веб-приложений.

Но если пользователь должен ввести какой-то код (где вкладки и форматирование важны) в поле редактирования внутри веб-браузера, он перемещается по элементам управления веб-страницей каждый раз, когда нажимает клавишу «Tab», вместо того, чтобы печатать символ "табуляция".

Существуют ли бесплатные веб-элементы управления или есть какой-либо код для получения противоположного поведения?
Google Docs делает это отлично.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 27 декабря 2008

Библиотека пользовательского интерфейса Yahoo имеет расширенный текстовый редактор , который правильно обрабатывает символы табуляции.

EDIT : Я подозреваю (потому что я не смотрел), что и редактор YUI, и редактор Google делают это, добавляя обработчик onKeyPress в текстовый контейнер. Когда они обнаруживают символ табуляции, они добавляют вкладку в контейнер и возвращают false, чтобы отменить обычное действие табуляции.

2 голосов
/ 27 декабря 2008

Вы можете отфильтровать событие keyDown и поймать клавишу табуляции:

<html>
<body>
<script type="text/javascript">
function keyFilter(e, field) {
  var key = window.event ? e.keyCode : e.which;
  if (key == 9) {
     field.value += "\t";
     return false;
  }
  return true;
}
</script>

<form>
<textarea onkeydown="return keyFilter(event, this);"></textarea>
</form>
</html>

РЕДАКТИРОВАТЬ: Обратите внимание, что это, конечно, сложнее, чем это. Нужно следить за тем, где в тексте нажата клавиша табуляции, и соответственно вводить символ.

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