lunes, marzo 23, 2009

Cómo ejecutar Javascript en Blogger

Mucha gente se pregunta cómo ejecutar Javascripts en Blogger para una larga lista de utilidades, como la inclusión de anuncios.

Desde luego, utilizarlos en los elementos de la barra lateral es tan simple como seleccionar como nuevo elemento la caja de edición de código, y pegar en ella el código Javascript.

El problema puede surgir al tratar de hacer lo mismo en el cuerpo principal de Blogger. El mismo código Javascript, que funciona divinamente en la barra lateral, podría no hacerlo al insertarlo dentro del cuerpo de un mensaje.

Esto no es el resultado de la malicia ni de la desmedida obsesión por la seguridad de Google.

Es el resultado, quizá hasta cierto punto imprevisto, de una característica opcional destinada a hacerle la vida más fácil al usuario: La conversión en tiempo de presentación de los retornos forzados (antiguamente llamados retornos de carro o Carriage Returns, abreviadamente, CR) por el código HTML de rotura de linea <BR />.

Esto quiere decir que, aunque el usuario no los vea en los modos Edición de HTML o Redactar, Blogger sustituye los retornos forzados únicos LF o dobles CR por una o dos etiquetas <BR /> en el momento de cargar la página. Podéis ver el efecto solicitando a vuestro navegador que os muestre el código de la página. Veréis que está plagado de etiquetas <BR />.

Aunque su efecto sobre las áreas de texto es positivo, la inclusión indiscriminada de esta etiqueta entre las etiquetas <script type="text/javascript"></script> lo inutiliza.

Desgraciadamente, la solución obvia, eliminar los retornos forzados dobles, también elimina los retornos forzados únicos que son esenciales en Javascript, inutilizándolo nuevamente.

Las dos soluciones más fáciles consisten en:

  • Convertir el código Javascript en un archivo *.js mediante la eliminación de las etiquetas HTML, subirlo a un servicio de hosting de Javascripts, como por ejemplo JavaScript Host, y luego enlazarlo a nuestra etiqueta <script> añadiéndole la dirección URL del archivo.
  • Desactivar la conversión de saltos de línea a la etiqueta <BR />, ya sea de forma global en Configuración -> Formato -> Convertir saltos de línea -> No, o hacerlo sólo para artículos individuales, los que contengan Javascript.

    Esta última posibilidad, la más interesante si no queremos renunciar a la comodidad de esta característica ni tener que editar todos los artículos que hayamos compuesto previamente, sólo está disponible por el momento si utilizas Blogger en borrador, una interfaz experimental que incluye características en prueba.

    En ese caso, una vez hayas aceptado usar Blogger en borrador, deberás acceder a Editar desde el Escritorio de Blogger, y no desde el icono con forma de lápiz en la parte inferior del artículo.
    Una vez allí, deberás seleccionar Ignorar saltos de línea.

    Por el contrario, si accedes a editar haciendo clic en el icono en forma de lápiz de la parte inferior del artículo, no estás usando Blogger en borrador.
    En ese caso, las opciones extendidas no estarán disponibles, y al guardar el artículo se reactivará la configuración global por defecto del blog en cuanto a la sustitución de retornos forzados, que podría implicar inhabilitar nuevamente el código Javascript. ¡Qué faena!
    Si lo has hecho por error, no te preocupes.

    Accede de nuevo por Blogger en borrador, asegúrate de haber desactivado la sustitución y comprueba que el código aparece correctamente dispuesto, no en una sóla línea. Guarda el mensaje, y verás que todo vuelve a funcionar.

    Palabra de hacker.