Estoy mostrando texto de estilo simple como html en un UIWebView en iPhone. Básicamente es una serie de párrafos con alguna frase fuerte o enfatizada. En tiempo de ejecución necesito aplicar estilos a rangos de texto.aplicar estilo al rango de texto con javascript en uiwebview
Existen algunas situaciones similares, una de las cuales es resaltar los resultados de búsqueda. Si el usuario ha buscado "algo", me gustaría cambiar el color de fondo detrás de las ocurrencias de la palabra, luego restaurar el fondo original.
¿Es posible aplicar estilos a rangos de texto usando javascript? Una parte clave de esto también es poder desarmar los estilos.
Parece que hay dos caminos posibles a seguir. Uno estaría modificando algunos html en Objective-C y pasando a través de javascript como el nuevo innerHTML de algún contenedor. El otro sería usar javascript para manipular directamente los nodos DOM.
Podría manipular html, pero eso suena tedioso en Objective-C, así que preferiría manipular el DOM si ese es un enfoque razonable. No estoy tan familiarizado con javascript y DOM así que no sé si es un enfoque razonable.
Escribí algunas rutinas para traducir entre rangos de texto y rangos de nodos con desplazamientos. Entonces, si comienzo con el rango de texto 100-200 y comienza en un párrafo y termina en un tercero, puedo obtener los nodos de texto y los desplazamientos dentro de los nodos que representan el rango de texto dado. Solo necesito una forma de dividir un nodo de texto en un desplazamiento en el texto. Actualmente solo aplico estilos a los párrafos que contienen el rango de texto.
Unas pocas notas:
- javascript recta por favor, no hay marcos externos como jQuery.
- los cambios nunca necesitan escribirse en el disco.
- los cambios deben ser intercambiables o al menos extraíbles.
- los estilos para aplicar ya existen en un archivo css.
- necesita funcionar en iPhone 3.0 y reenviar.
- todos los archivos fuente se envían con la aplicación.
- por favor sean prolijo.
Gracias por cualquier sugerencia.
Gracias. Esto es más de lo que esperaba. – drawnonward
Quizás ponga esto en github, para que podamos seguir al menos. – Mark
Estoy trabajando en una biblioteca de rango/selección entre navegadores que incluirá una versión mejorada de esto. Aún no se ha avanzado mucho, pero he creado un proyecto de Google Code: http://code.google.com/p/rangy/ –