2009-12-14 25 views
18

Estoy tratando de facilitar que un usuario de iphone copie texto en el portapapeles en el safari móvil. Como en el "touch-hold-copy" habitual. Hay un fragmento específico de texto que quiero que un usuario copie. Tengo una opción completa del marcado HTML para envolver el texto. ¿Cómo puedo hacerlo más fácil, en lugar de abitrario? Por ejemplo:Seleccionar texto en el dispositivo móvil Safari en el iPhone

  • ¿Hay alguna manera de "seleccionar todo" el texto al tocar con javascript? Entonces, ¿un usuario podría simplemente mantener pulsado y luego elegir copiar?

  • ¿Hay alguna manera de mostrar la opción "seleccionar todo"? ¿Te gusta al escribir en un cuadro de texto? Después de lo cual pueden elegir copiar?

  • Si no hay una solución de javascript, ¿cómo puedo organizar el html para que Safari pueda seleccionar fácilmente el texto correcto? ¿En oposición a solo una palabra, o un div de envoltura?

He intentado onFocus = "this.select()" para varios elementos, ninguno parece funcionar. También probado onClick.

Aquellos que han intentado trasladar un sitio que usa ZeroClipboard al iPhone pueden tener algunas ideas.

Saludos

+0

yo estaba tratando de la misma característica en mi aplicación para iPhone. Cualquiera que tenga dudas sobre la función puede verla en la aplicación para iPhone "Opera". –

+0

Antes de copiar/pegar en iOS, había un marcador de script java llamado pastebud. Aquí está el video de youtube del script java en acción http://www.youtube.com/watch?v=_ybh573ZASc El sitio web http://www.pastebud.com/ no funciona desde que apple presentó copy/pegar en iOS. Cualquiera con ese script java puede ayudarnos. –

Respuesta

2

Me he encontrado con el mismo problema. El evento onfocus es el correcto para interceptar (ontouchstart no se activa si usas los botones del teclado del iPhone [next]/[prev]). Si pones una alerta(); en su controlador onfocus = "", verá aparecer el cuadro de alerta. El problema es this.select(); Todavía no he encontrado una respuesta a esto, pero cuando lo haga, lo publicaré aquí.

+0

Tuve el mismo problema. el enfoque es el evento correcto para atrapar, definitivamente. Creo que para una mejora de usabilidad menor como esta, estoy bien atribuyéndolo a un safari móvil roto y dejándolos arreglarlo. – SimplGy

9

en lugar de this.select(); ¡Usé lo siguiente y funcionó!

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

Esto funcionó para mí en mi iPhone 3GS - iOS 4.3 – Mark

+0

¡Todavía funciona con iOS 7 en un iPhone 5! – mygzi

7

La salsa mágica para mí fue la combinación de estos tres:

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

Esto funcionó para mí con onClick en lugar de onFocus/onTouchEnd. onMouseUp fue importante – netzaffin

Cuestiones relacionadas