Как я могу направить ввод текста в скрытое поле на HTML-странице?

0

Я пытаюсь обрабатывать копирование и вставку в приложение, которое я разрабатываю, перенаправляя их в скрытое поле. Проблема в том, что, когда я устанавливаю visibility: hidden в поле, я пытаюсь направить ввод, ввод или копирование/вставка в поле, похоже, не работает. Я пытаюсь использовать <textarea> чтобы поймать текст и установить фокус с помощью document.select('textAreaID').focus(), и он работает, если только я не задал visibility: hidden в css.

Тест-скрипт, который показывает это поведение. Синий квадрат дает фокус, красную и зеленую видимость.

Есть ли хороший способ скрыть область текста и по-прежнему можно вставить или ввести в нее? Если нет, есть ли хороший альтернативный способ перенаправления поведения копии, чтобы получить фрагмент текста, который может быть проанализирован, отредактирован и сработал?

(Также: там есть d3 в скрипке, поскольку я использую его для чего-то другого, и он предлагает удобные API-интерфейсы.)

Теги:

3 ответа

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

Похоже, что браузеры не позволяют сосредоточиться на видимости: скрытые элементы. В других браузерах это может быть иначе, но для Chrome это не работает: http://jsfiddle.net/ps6KK/

Поэтому, поскольку мы не можем сделать видимость: скрытый, мы должны существенно заставить текстовое поле казаться скрытым. Вы можете это сделать, уничтожив все его высоту/вес/и т.д. И установив прозрачный фон. Вы также можете настроить цвет текста на прозрачный, если хотите.

#textDiv {
  resize: none;
  padding: 0;
  height: 0;
  border: 0;
  width: 0;
  background: transparent;
}

Более подробный пример можно найти здесь: http://jsfiddle.net/4Jwxv/1/

  • 0
    Забыл про изменение размера: нет :)
0

Это ваша проблема хранения текста, когда вы "копируете" (а не "вставляете")? Вы можете сделать это с помощью старой старой переменной JavaScript (не объявленной внутри функции обработчика событий, но вне ее); не нужно хранить его в скрытом элементе HTML.

0

Вероятно, вы можете использовать метод.html() в jQuery для обновления текстового поля

  • 0
    Мне не нужно обновлять текстовую область, мне нужно иметь возможность направлять входные данные в нее. Я пытаюсь поймать некоторый текст, вставленный на Ctrl + V, не связываясь напрямую с буфером обмена, и хочу вставить его в скрытую текстовую область.
  • 0
    Правильно, поэтому используйте обработчик события jQuery для захвата вставленного значения и метод .html () для присвоения этого значения текстовой области.
Показать ещё 1 комментарий

Ещё вопросы

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