2009-12-14 2 views
18

Я пытаюсь сделать так, чтобы пользователь iphone мог скопировать некоторый текст в буфер обмена в мобильном сафари. Как в обычной «прикосновенной копии». Для копирования требуется конкретный бит текста. У меня есть полный выбор html-разметки для обертывания текста. Как я могу сделать это легко, а не наоборот? Например:Выбор текста в мобильном Safari на iPhone

  • Есть ли способ «выбрать все» текст при касании с помощью javascript? Тогда пользователь мог бы просто продолжать касаться, а затем выбрать копию?

  • Есть ли способ вызвать «выбрать все»? Как вы можете при вводе текстового поля? После чего они могут выбрать копию?

  • Если нет javascript-решения, как я могу организовать html, чтобы помочь Safari легко выбрать правильный бит текста? В противоположность просто слову или обертыванию div?

Я пробовал onFocus = "this.select()" для различных элементов, ни один из них не работает. Также попробовал onClick.

Те, кто попытался перенести сайт, который использует ZeroClipboard для iPhone, могут иметь некоторые идеи.

Приветствия

+0

Я пытался по одной и той же функции в моем iPhone приложения. Любой, кто сомневается в этой функции, может увидеть ее в приложении iPhone «Опера». –

+0

До того, как в iOS была введена копия/вставка, появилась закладка java script с именем pastebud. Вот видео youtube java-скрипта в действии http://www.youtube.com/watch?v=_ybh573ZASc Веб-сайт http://www.pastebud.com/ не работает, так как Apple представила копию/вставить в iOS. Любой, у кого есть этот скрипт java, может нам помочь. –

ответ

2

Я столкнулся с той же проблемой. Событие onfocus является правильным для ловушки (ontouchstart не запускается, если вы используете кнопки iphone keyboard [next]/[prev].) Если вы установите предупреждение(); в обработчике onfocus = "" вы увидите всплывающее окно с предупреждением. Проблема в том, что this.select(); Я до сих пор не нашел ответа на это, но когда/если я это сделаю, я отправлю его здесь.

+0

У меня была такая же проблема. Фокус - это правильное событие для ловушки, определенно. Я думаю, что для незначительного улучшения удобства использования, как это, я в порядке, делая это, чтобы сломать мобильное сафари и позволить им исправить это. – SimplGy

9

вместо this.select(); Я использовал следующее, и это сработало!

this.selectionStart=0; 
this.selectionEnd=this.value.length; 
+0

Это сработало для меня на моем iPhone 3GS - iOS 4.3 – Mark

+0

Все еще работает с iOS 7 на iPhone 5! – mygzi

7

Волшебное соус для меня было сочетание этих трех:

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 --> 
+0

Это работало для меня с onClick вместо onFocus/onTouchEnd. onMouseUp было важно – netzaffin