Me obligaron a hacerlo

Si eres programador y trabajas por cuenta ajena, probablemente alguna vez te haya tocado implantar una solución o funcionalidad en contra de lo que consideras básicos principios del sentido común. Después de todo, el cliente paga para que se haga lo que dice, independientemente de estándares, usabilidad o costes inútiles. Hace poco me pidieron que dotara a una aplicación web de una funcionalidad curiosa. Un buscador para encontrar palabras dentro del texto de la página. De la página que se está visualizando, o sea lo mismo que el Ctrl+F de toda la vida. El desarrollo era para una aplicación para ser desplegada únicamente en una intranet y accesible únicamente con Internet Explorer 9, así que la solución que se adoptó, con la ayuda de un poco de jQuery, fue la siguiente: Y listos. Pero luego, mira tú por dónde, se decidió que la aplicación había de ser publicada en las interwebs. Y compatible con los navegadores principales, desde Opera en adelante. Y, claro, el objeto ActiveX no está muy bien visto fuera del reino IE. Hay que reconocer que otros navegadores admiten lanzar el buscador de texto en página por javascript: En Firefox y en algunos otros de la familia gecko window.find() abre la ventanita del buscador de texto en la página. No así en Chrome y otros navegadores de la rama webkit. Estos últimos sí que admiten el método object.find(), pero hay que pasarle un argumento (el texto a buscar) y, en cualquier caso, no abren el solicitado buscador de texto. Opera, por su lado, ni siquiera se da por enterado. Ante la imposibilidad de conseguir una solución homogénea, se decidió presentar una solución por javascript, compatible con la inmensa mayoría de navegadores, para ello qué mejor que desarrollar un plugin para jQuery. inútil plugin para jQuery Es más lento que qualquier buscador interno del navegador, más inestable y posiblemente impreciso, pero el cliente tiene su botoncito. Un poco por desahogo, decidí hacer en una tarde una paginilla para «promover el plugin». Si a pesar de lo que he dicho, alguien quiere echarle un vistazo, no tiene más que pinchar en la imagen. Quedais avisados.

Publicaciones Similares

  • Chart.js: cómo cambiar el idioma (locale) dinámicamente

    Escenario Por un lado una aplicación que permite al usuario personalizar el idioma del sitio. Por otro, una gráfica de tipo línea temporal generada con la biblioteca Chart.js, integrada en un módulo de React con react-chartjs-2. Problema Según un comentario de un usuario de Stackoverflow, basta con un require('moment/min/moment-with-locales'); y establecer el valor de la…

  • horario de verano y javascript

    Escenario Con el fin de dibujar una gráfica cronológica, necesito generar en javascript una matriz de fechas a partir de una de inicio y otra de fin. En stackoverflow doy con una solución que considero sencilla e inteligible:

    Tras modificarla lo justo y probarla compruebo que devuelve una matriz de fechas de tipo '2019-02-01','2019-02-02','2019-02-03','2019-02-04'

  • Spring boot y websockets

    Escenario Un usuario se conecta con el móvil a su aplicación de empresa. Si es la primera vez que lo hace ésta le pide autorización para recabar su localización. La aplicación manda la localización al servidor y desde el servidor se informa a una página de monitorización. Dicha página está conectada por websocket con el…

  • Filezilla mata mi router

    Escenario Me he comprado un ordenador nuevo hace una semana y estoy mandando unos archivos con un filezilla recién instalado cuando, durante la transmisión del tercer o cuarto fichero, la conexión se interrumpe. La interfaz gráfica de Filezilla deja de responder y tengo que tirar de un killall -9 filezilla para conseguir matar el proceso….

  • |

    Traducción de variables en javascript

    Escenario Estoy trabajando en una aplicación multi-lenguaje desarrollada con la plataforma spring boot. Para quien no conozca esta plataforma de desarrollo, spring boot te permite gestionar varios lenguajes gracias a un sistema que utiliza ficheros de tipo propiedades para almacenar las traducciones. Los nombres de estos ficheros han de respetar la siguiente convención, messages_{código ISO…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *