Я пытаюсь обрабатывать копирование и вставку в приложение, которое я разрабатываю, перенаправляя их в скрытое поле. Проблема в том, что, когда я устанавливаю visibility: hidden
в поле, я пытаюсь направить ввод, ввод или копирование/вставка в поле, похоже, не работает. Я пытаюсь использовать <textarea>
чтобы поймать текст и установить фокус с помощью document.select('textAreaID').focus()
, и он работает, если только я не задал visibility: hidden
в css.
Тест-скрипт, который показывает это поведение. Синий квадрат дает фокус, красную и зеленую видимость.
Есть ли хороший способ скрыть область текста и по-прежнему можно вставить или ввести в нее? Если нет, есть ли хороший альтернативный способ перенаправления поведения копии, чтобы получить фрагмент текста, который может быть проанализирован, отредактирован и сработал?
(Также: там есть d3 в скрипке, поскольку я использую его для чего-то другого, и он предлагает удобные API-интерфейсы.)
Похоже, что браузеры не позволяют сосредоточиться на видимости: скрытые элементы. В других браузерах это может быть иначе, но для Chrome это не работает: http://jsfiddle.net/ps6KK/
Поэтому, поскольку мы не можем сделать видимость: скрытый, мы должны существенно заставить текстовое поле казаться скрытым. Вы можете это сделать, уничтожив все его высоту/вес/и т.д. И установив прозрачный фон. Вы также можете настроить цвет текста на прозрачный, если хотите.
#textDiv {
resize: none;
padding: 0;
height: 0;
border: 0;
width: 0;
background: transparent;
}
Более подробный пример можно найти здесь: http://jsfiddle.net/4Jwxv/1/
Это ваша проблема хранения текста, когда вы "копируете" (а не "вставляете")? Вы можете сделать это с помощью старой старой переменной JavaScript (не объявленной внутри функции обработчика событий, но вне ее); не нужно хранить его в скрытом элементе HTML.
Вероятно, вы можете использовать метод.html() в jQuery для обновления текстового поля