
Un bookmarklet es un marcador almacenado en un navegador web que contiene comandos JavaScript para añadir nuevas funcionalidades al navegador. Se almacenan como la URL de un marcador en el navegador o como un hipervínculo en una página web . Los bookmarklets suelen ser pequeños fragmentos de JavaScript que se ejecutan cuando el usuario hace clic en ellos. Al hacer clic, los bookmarklets pueden realizar diversas operaciones, como ejecutar una búsqueda a partir del texto seleccionado o extraer datos de una tabla.
Otro nombre para bookmarklet es favelet o favlet , derivado de favorites (sinónimo de bookmark). [ 1 ]
Historia
Steve Kangas, de bookmarklets.com, acuñó el término bookmarklet [ 2 ] cuando comenzó a crear scripts cortos basados en una sugerencia de la guía de JavaScript de Netscape . [ 3 ] Antes de eso, Tantek Çelik llamó a estos scripts favelets y usó ese término ya el 6 de septiembre de 2001 (correo electrónico personal ). Brendan Eich , quien desarrolló JavaScript en Netscape, dio esta explicación sobre el origen de los bookmarklets:
Fueron una característica deliberada en este sentido: inventé la
javascript:URL junto con JavaScript en 1995, y pretendía quejavascript:las URL pudieran usarse como cualquier otro tipo de URL, incluyendo la posibilidad de añadirlas a marcadores. En particular, hice posible generar un nuevo documento cargando, por ejemplojavascript:'hello, world', , pero también (clave para los marcadores) ejecutar scripts arbitrarios en el DOM del documento actual, por ejemplojavascript:alert(document.links[0].href). La diferencia es que este último tipo de URL usa una expresión que se evalúa como undefined en JS. Añadí el operador void a JS antes del lanzamiento de Netscape 2 para facilitar el descarte de cualquier valor no undefined en unajavascript:URL.
— Brendan Eich, en un correo electrónico a Simon Willison [ 4 ]
La creciente implementación de la Política de Seguridad de Contenido (CSP) en sitios web ha causado problemas con la ejecución y el uso de bookmarklets (2013-2015), [ 5 ] y algunos sugieren que esto anuncia el fin o la muerte de los bookmarklets. [ 6 ] [ 7 ] William Donnelly creó una solución alternativa para este problema (en el caso específico de cargar, referenciar y usar código de biblioteca JavaScript) a principios de 2015 usando un script de usuario de Greasemonkey ( extensión de navegador Firefox / Pale Moon ) y un protocolo de comunicación simple entre bookmarklet y script de usuario . [ 8 ] Esto permite que los bookmarklets (basados en bibliotecas) se ejecuten en cualquier sitio web, incluidos aquellos que usan CSP y tienen un esquema URI https://. Sin embargo, si los navegadores admiten la desactivación/prohibición de la ejecución de scripts en línea usando CSP, y si los sitios web comienzan a implementar esa función, esto "romperá" esta "solución".
Concepto
Los navegadores web utilizan URI para el hrefatributo de la etiqueta y para los marcadores. El esquema URI, como o , y que generalmente especifica el protocolo , determina el formato del resto de la cadena. Los navegadores también implementan URI que para un analizador sintáctico es como cualquier otra URI. El navegador reconoce el esquema especificado y trata el resto de la cadena como un programa JavaScript que luego se ejecuta. El resultado de la expresión, si lo hay, se trata como el código fuente HTML para una nueva página que se muestra en lugar de la original.<a>httpftpjavascript:javascript
El script en ejecución tiene acceso a la página actual, la cual puede inspeccionar y modificar. Si el script devuelve un tipo indefinido (en lugar de, por ejemplo, una cadena de texto), el navegador no cargará una página nueva, por lo que el script simplemente se ejecutará sobre el contenido de la página actual. Esto permite realizar cambios como el tamaño y el color de la fuente directamente en la página sin necesidad de recargarla.
Una función invocada inmediatamente que no devuelva ningún valor o una expresión precedida por el voidoperador impedirá que el navegador intente analizar el resultado de la evaluación como un fragmento de marcado HTML:
JavaScript : ( función (){//Instrucciones que devuelven un tipo no indefinido, por ejemplo, asignaciones})();Uso
Los bookmarklets se guardan y utilizan como marcadores normales. Por lo tanto, son herramientas sencillas de "un solo clic" que añaden funcionalidad al navegador. Por ejemplo, pueden:
- Modificar la apariencia de una página web dentro del navegador ( por ejemplo , cambiar el tamaño de la fuente, el color de fondo, etc.).
- Extraer datos de una página web ( por ejemplo , hipervínculos , imágenes , texto , etc.)
- Eliminar redirecciones de los resultados de búsqueda (por ejemplo, de Google) para mostrar la URL de destino real [ 9 ]
- Envía la página actual a un servicio de blogs como Posterous , un servicio para acortar enlaces como bit.ly o un servicio de marcadores como Delicious.
- Consulta un motor de búsqueda o una enciclopedia en línea con texto resaltado o mediante un cuadro de diálogo.
- Envíe la página actual a un servicio de validación de enlaces o a un servicio de traducción.
- Establezca opciones de configuración de uso común cuando la página en sí no ofrezca ninguna manera de hacerlo.
- Controla los parámetros de reproducción de audio y vídeo de HTML5 , como la velocidad, la posición, la activación /desactivación de la reproducción en bucle y la visualización/ocultación de los controles de reproducción; el primero de ellos se puede ajustar más allá del rango típico de configuración de los reproductores HTML5. [ 10 ] [ 11 ] [ 12 ]
Instalar un bookmarklet sigue el mismo proceso que agregar un marcador normal; la única diferencia es que en lugar del campo de URL de destino aparece código JavaScript precedido por javascript:. Una vez creados, los bookmarklets se pueden ejecutar haciendo clic en ellos.
Referencias
- ↑ Jonathan Avila (2 de marzo de 2014). "Cómo crear un favlet para pruebas de accesibilidad" . Archivado del original el 22 de enero de 2018. Consultado el 23 de mayo de 2023 .
- ↑ "Bookmarklets" . Archivado del original el 7 de julio de 2009.Registrada el 9 de abril de 1998.
- ↑ "Activación de comandos JavaScript desde la barra de herramientas personal" . Novedades de JavaScript 1.2 . Netscape Communications Corporation. 1997. Archivado del original el 11 de junio de 2002.
- ↑ Willison, Simon (10 de abril de 2004). "Correo electrónico de Brendan Eich" . SitePoint . Archivado del original el 25 de septiembre de 2014. Recuperado el 26 de septiembre de 2014 .
- ↑ "Error 866522 - Bookmarklets afectados por CSP" . Archivado del original el 11 de mayo de 2015. Consultado el 9 de mayo de 2015 .
- ↑ "Los bookmarklets han muerto" . 23 de octubre de 2014. Archivado del original el 18 de mayo de 2015. Consultado el 9 de mayo de 2015 .
- ↑ "La lenta agonía de los bookmarklets" . 16 de noviembre de 2012.
- ↑ "La resurrección de los bookmarklets" .
- ↑ Ruderman, Jesse. "Bookmarklets para eliminar molestias" . Sitio web de Bookmarklets de Jesse . Consultado el 29 de marzo de 2013 .
- ↑ "Bookmarklets de velocidad de vídeo de YouTube" . sgeos.github.io . 29 de octubre de 2017. Archivado del original el 6 de diciembre de 2020. Consultado el 6 de diciembre de 2020 .
- ↑ Kant, Kushal (23 de agosto de 2017). "Cómo usar parámetros en etiquetas/atributos de vídeo HTML5" . findnerd . Archivado del original el 6 de diciembre de 2020. Recuperado el 6 de diciembre de 2020 .
- ↑ "Etiqueta de vídeo HTML" . www.w3schools.com . Archivado del original el 6 de diciembre de 2020. Consultado el 6 de diciembre de 2020 .
Enlaces externos
- Calishain, Tara (3 de febrero de 2004). "Los bookmarklets mejoran la navegación web" . PC Magazine . Recuperado el 31 de agosto de 2007 .
- JavaScript
- Desarrollo web