velocidad ultima seguridad para pagina navegador mac cual app javascript iphone copy mobile-safari zeroclipboard

javascript - ultima - Seleccionando texto en el móvil Safari en iPhone



seguridad de safari (4)

Estoy tratando de facilitarle a un usuario de iPhone copiar texto en el portapapeles en un safari móvil. Como en el habitual "touch-hold-copy". Hay un bit específico de texto que quiero que el usuario copie. Tengo la opción completa de la marcación html para envolver el texto. ¿Cómo puedo hacerlo fácil, en lugar de abitrario? Por ejemplo:

  • ¿Hay una manera de "seleccionar todo" el texto al hacer un touch-down usando javascript? Entonces, ¿un usuario podría simplemente mantener pulsado y luego elegir copiar?

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

  • Si no hay una solución javascript, ¿cómo puedo organizar el html para ayudar a Safari a seleccionar el fragmento de texto correcto fácilmente? ¿A diferencia de solo una palabra, o una envoltura div?

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

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

Aclamaciones


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


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



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

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