[HTML] select и copy&paste
никак по хорошему. Разве что скриптом перехвативать нажатие соответсвующих клавиш, формировать нужный текст и класть его в буфер, но это не во всех браузерах будет работать и не при всех настройках безопасности
это авторы браузеров сцуки или на то есть какие-то отмазки?
ну сделай рядышком кнопку, при нажатии на которую значения копируй в буфер
Как уже написал - не во всех браузерах работать будет. (например js в firefox работать с буфером не умеет)
Ну, в качестве отмазки могу предложить лишь то, что это никому не надо. Т.е. скопировать ты его скопируешь, но куда вставлять будешь? Если в текст, то это обычно не нужно, а если в [мульти]селект, то надо, чтобы в нём те же значения были, что крайне маловероятно.
Как раз про фаерфокс недавно выясняли и оказалось, что умеет. ИЕ тоже умеет, но по-своему. А вот опера нет.
Если не лазить в about:config, то не умеет. Или я что-то пропустил?
Я хз, я FF не пользуюсь. Там вроде есть какой-то механизм для XUL, и он работает и в скриптах на страничках, хотя возможно надо что-то в настройках поменять.
чтоб на страничках заработало нужно менять конфиг фаерфокса. в расширениях разумеется работает поумолчанию.
Есть ещё план совсем извратного решения. Это текстовое поле сделать небольшим, чем-то закрыть его.
При попадении фокуса на селект, отдавать фокус текстовому полю. А оно пусть реагирует на нажатия клавиш "вверх" и "вниз" изменением выбранного элемента в селекте. Но это всё изврат.
Ну, в качестве отмазки могу предложить лишь то, что это никому не надо.
есть мультиселект в котором несколько значений (длинных и не тривиальных - в смысле там не слова)ю Один пользователь хочет послать другому свои настройки - он делает Ctrl-C и в письмо вставляет текст (это собсно то, чего хотят в моем конкретном случае) варианты типа завести [видимое] поле и в нем отображать значение из селекта введет большинство юзеров в замешательство а со скрытым полем - слишком геморно
Например замени его таблицей с чекбоксами или просто группой чекбоксов.
вряд ли настройки токо в одном селекте есть, не будешь же ты так каждый селект копировать/вставлять
а по кнопке они бы сразу все улетали бы
+ мыло было в качестве примера - вместо него вполне может быть какой-нить мессенджер
варианты типа завести [видимое] поле и в нем отображать значение из селекта введет большинство юзеров в замешательствоможно это сделать также, как делается с печатью: есть кнопка (что-то типа "данные для копирования" при нажатии на которую, открывается форма в которой выводится именно то, что ты хочешь
можно это сделать также, как делается с печатью: есть кнопка (что-то типа "данные для копирования" при нажатии на которую, открывается форма в которой выводится именно то, что ты хочешь
это-то понятно, я примерно так в итоге и решил делать..
просто думал вдруг есть способ заставить "стандартно" работать
Хочется, чтоб юзер CTRL-C нажал и в буфер скопировалось, например, value выбранных пунктовУ этого есть два, и оч-чень больших минуса. Первое - это неочевидно. То есть комментарий на эту тему нужно будет где-то оставить. Но даже при наличии этого комментария пользователь может (читай: будет) время от времени удивляться: а чего это copy-paste так странно работает - копировал вроде только вот эту цифирь, а он мне вон какую простыню выдал?
Второе - это непереносимо. Что ты будешь говорить пользователю, у которого нет клавиши Ctrl?
Первое - это неочевидно.
имхо, если чел нажал Ctrl-C сразу после выделения чего-то в селекте - это более или менее очевидно (что в буфер скопируется то, что выбрано)
хотя, если после этого он выбрал какой-нить текст на странице - тут могут быть непонятки, да
Что ты будешь говорить пользователю, у которого нет клавиши Ctrl?
я таких клавиатур не видел и таких юзеров среди целевой аудитории наверняка нету
Так что ни один из этих минусов ОГРОМНЫМ я бы не назвал
я таких клавиатур не видел и таких юзеров среди целевой аудитории наверняка нетуэкранные клавиатуры смартфонов/кпк ?
Оставить комментарий
zya369
как проще всего сделать, чтобы на [мульти]селекте Ctrl-C работало? Хочется, чтоб юзер CTRL-C нажал и в буфер скопировалось, например, value выбранных пунктов (или текст - без разницы)