Nota del autor

Si la entrada que estás leyendo carece de imágenes, no se ve el vídeo que teóricamente lleva incrustado o el código fuente mostrado aparece sin formato, podéis conocer los motivos aquí. Poco a poco iré restableciendo la normalidad en el blog.
Este blog es un archivo de los artículos situados previamente en Lobosoft.es y ha dejado de ser actualizado. Las nuevas entradas pueden encontrarse en www.lobosoft.es. Un saludo,
Lobosoft.

jueves, 24 de julio de 2008

Hack this!

Existe una formula arcana que permite hackear cualquier página web, independientemente de la tecnología usada para desarrollarla, del servidor en que esté alojada o del navegador que estés usando. Simplemente entra en ella, y sustituye en la barra de dirección de tu navegador la URL de la página por esta línea:


javascript:document.body.contentEditable='true'; document.designMode='on'; void 0


Tras pulsar Enter, podrás modificar la página a tu elección. Incluso puedes editar esta misma página.

Obviamente, se trata de una mera curiosidad, ya que lo que estamos editando es la copia local que de la página ha realizado el navegador. Recordemos que podemos indicar mediante javascript: que deseamos ejecutar una serie de sentencias en este lenguaje (por ejemplo, si escribimos javascript:alert('Hola mundo') y pulsamos Enter, aparecerá un cuadro de mensaje en la ventana del navegador saludándonos). Es lo que se conoce como un bookmarlet, y las reglas que controlarán la forma en que escribiremos este código serán las siguientes:




  • Debemos preceder el código de javascript: (a modo de protocolo), lo que le indicará al navegador que lo que sigue no es una URL, sino código a ejecutar.

  • Escribiremos a continuación el código Javascript en una sola línea, separando cada sentencia por un ;.(punto y coma).

  • La ejecución de las sentencias no deberá devolver valor alguno (o lo que es lo mismo, devolverán undefined). Algunas funciones estándar devuelven undefined (por ejemplo, el alert() que hemos usado para presentar en pantalla el "Hola mundo" en Javascript), pero otras devuelven un valor concreto, por lo que deberemos preceder el operador void() que evaluará la expresión y devolverá undefined. En caso de no hacerlo así, tras ejecutar el código, el navegador mostrará una página en blanco con el valor devuelto por la sentencia. De ahí que venga incluido en el ejemplo de edición de la web, ya que si no lo hiciéramos desaparecería el contenido y sería sustituido por "on", el resultado de establecer el modo de diseño del documento a ON.

  • Además, grandes longitudes de texto en la barra de dirección provocarán problemas (no deberíamos sobrepasar los 512 caracteres), por lo que hay que optimizar la sentencia a escribir.


Aunque no se trata de una tecnología reciente (ya los usábamos años atrás, por ejemplo para agregar las páginas a los favoritos del usuario), sí que me ha parecido bueno rescatarla para presentar la curiosidad de la edición de una web desde el propio navegador. Otra interesante opción es traducir nuestra página a cualquier otro idioma usando para ello el traductor de Google. Por ejemplo, podríamos traducir al inglés la página de Lobosoft simplemente usando el siguiente bookmarlet:


javascript:location.href='http://translate.google.com/translate?u='+encodeURIComponent(location.href)+'&langpair=%s&hl=EN&ie=UTF-8&oe=UTF-8&prev=%2Flanguage_tools'

No hay comentarios:

Publicar un comentario