Lo saque del excelente libro sobre javascript, "JavaScript: The Definitive Guide, 5th Edition" de David Flanagan (esta en la sección 13.4.1. Bookmarklets ). Lo pongo acá principalmente para tenerlo a mano, no para robarle el crédito a David ;). Mi único aporte tal vez sean los ejemplitos de uso (principalmente el último).
Bueno, se trata de un simple script que utilizando el protocolo
"javascript:" muestra un diálogo que permite evaluar
expresiones javascript en el ambiente de la página actual (por ej,
ver y/o setear cookies).
A modo de ejemplo, presione el siguiente link
Clickéeme con cariño
ingrese el texto "document.cookie" (sin comillas) y acepte. Debe aparecer algo como
lo siguiente:
Expression: document.cookie
Result: JavascriptEvaluator=Hola
Esto es así porque esta página le seteo un cookie llamado JavascriptEvaluator con
valor "Hola" y sí, lo hizo sin su consentimiento. Otros ejemplos (copie y pegue
en el diálogo):
1) document.title="Pongo lo que quiero yo..."
2) (1024*1024*1024) +" = 1 Giga"
3) function fact(n) { if (n<2) return n; else return n*(fact(n-1)) }; fact(5)
Ahora, si lo desea haga click derecho sobre el link "Clickéeme con cariño" y agregelo a sus bookmaks como cualquier otra URI; de esta manera siempre va a poder usar el JavaScript Evaluator en cualquier momento y sobre cualquier página que desee; simplemente habrá el link del bookmark y el diálogo aparecerá. Por ejemplo, puede ir a google, hacer click en el bookmark y cambiarle el título por "anteojos".
Lo que aparece en link luego de "javascript:" es básicamente un versión "escapada"
como URI del
siguiente código:
var e="", r="";/*Expression to evaluate and the result*/
do { / Display expression and result and ask for a new expression */
e = prompt("Expression: " + e + "\n" + r + "\n", e);
try { r ="Result: " + eval(e); } /* Try to evaluate the expression */
catch(ex) { r = ex; } /* Or remember the error instead */}
while(e); /* Continue until no expression entered or Cancel clicked */
void 0; /* This prevents the current document from being overwritten*/
Saludos y viva Perón carajo!