Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/07/2011, 20:25
zant95
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cambiar valor del textbox que tenga el foco

Las páginas que modifico no son mías, es una extensión para Chrome, por lo que muchas tendrán ya asignados elementos onfocus, por lo que no podría reemplazarlos sino añadir al final de cada una la función que quiero (eso es fácil), pero claro, unas tienen onfocus="funcion();" y otras onfocus="funcion()", por lo que tendría que detectar si acaban ya en ";" y como las webs son dinámicas, aparecen y desaparecen nuevos elementos sin recargarlas, tendría que añadir mi función mediante un setInterval, lo que me llevaría a también detectar si ya he añadido mi función antes.

¿Esa es la forma más sencilla o se les ocurre otras?
¿Cómo podría recorrer todo el documento en busca de inputs de texto?

La idea de cómo sería la función la he sacado de este post de JavierB.

Saludos.

EDITO:
En vez de un setInterval creo que sería mejor añadir también al onfocus la función que recorre el documento en busca de inputs de texto.

EDITO 2:
Como bien dije antes las páginas son dinámicas, así que no me basta con que mi función se ejecute al principio y después cuando cada texto obtenga el foco, ya que puede que al principio de carga no haya ningún input de texto y la función no se vuelva a ejecutar, así que tengo que recurrir a mi primera idea, el setInterval, o bien puedo agregar al body el evento onclick para que ejecute mi función ¿qué me recomiendan?

Ya sé que puede que haya un input con el foco ya definido y el usuario no tenga que hacer clic para escribir en él, pero cuando quiero que realmente funcione es cuando el usuario haga clic derecho para usar el menú contextual ¿ustedes saben si existe un evento estándar tipo onrightclic?
Es que si existe que me quito de rollos como el setInterval o el body.onload con un onrightclic me bastaría.

¿Si el usuario tiene el foco y el ratón encima de ese input no sirve el this.value? ;)

Última edición por zant95; 13/07/2011 a las 20:44