Ответ 1
вместо this.select();
Я использовал следующее и работает!
this.selectionStart=0;
this.selectionEnd=this.value.length;
Я пытаюсь сделать так, чтобы пользователь iphone мог скопировать некоторый текст в буфер обмена в мобильном сафари. Как в обычной "прикосновенной копии". Для копирования требуется конкретный бит текста. У меня есть полный выбор html-разметки для обертывания текста. Как я могу сделать это легко, а не наоборот? Например:
Есть ли способ "выбрать все" текст при касании с помощью javascript? Тогда пользователь может просто продолжить касание и затем выбрать копию?
Есть ли способ вызвать "выбрать все"? Как вы можете при вводе текстового поля? После чего они могут выбрать копию?
Если нет javascript-решения, как я могу организовать html, чтобы помочь Safari легко выбрать правильный бит текста? В отличие от простого слова или обертки div?
Я пробовал onFocus = "this.select()" для разных элементов, ни один из них не работает. Также попробовали onClick.
Те, кто попытался перенести сайт, который использует ZeroClipboard для iPhone, могут иметь некоторые идеи.
Приветствия
вместо this.select();
Я использовал следующее и работает!
this.selectionStart=0;
this.selectionEnd=this.value.length;
Волшебный соус для меня был комбинацией этих трех:
onFocus="this.selectionStart=0; this.selectionEnd=this.value.length;" <!-- for big screens -->
onTouchEnd="this.selectionStart=0; this.selectionEnd=this.value.length;" <!-- for small screens -->
onMouseUp="return false" <!-- to stop the jitters -->
Попробуйте ontouchstart вместо onfocus. Onfocus стреляет ок. 500 мс после ontouchend, так же, как onclick, onmousedown и onmouseup. Подробнее о событиях мыши см. http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW7.
Я столкнулся с той же проблемой. Событие onfocus является правильным для ловушки (ontouchstart не запускается, если вы используете кнопки iphone keyboard [next]/[prev].) Если вы установите предупреждение(); в обработчике onfocus = "" вы увидите всплывающее окно с предупреждением. Проблема в том, что this.select(); Я до сих пор не нашел ответа на это, но когда/если я это сделаю, я отправлю его здесь.