Se le dice al navegador para mostrar el resultado de ejecutar la cadena vacía literal. Por lo tanto, solo mostraría una cadena vacía.
Puede probar el efecto de esto escribiendo javascript:'http://stackoverflow.com';
en la barra de direcciones de una ventana/pestaña normal. Obtendrá una página en blanco que dice "http://stackoverflow.com" y no será llevado a esa URL.
Esta es la razón por la que los bookmarklets a menudo envuelven el código dentro de void()
o una función anónima que no devuelve nada para evitar que el navegador intente mostrar el resultado de la ejecución del bookmarklet. Por ejemplo:
javascript:void(window.open("dom_spy.html"))
O:
javascript:(function() { window.open("dom_spy.html"); })()
Si utiliza directamente el código que devuelve algo (una nueva instancia de la ventana en este caso), el navegador va a terminar mostrando que:
javascript:window.open("dom_spy.html");
En Firefox, lo anterior mostrará:
[object Window]
Tenga en cuenta que no TODO necesita ser envuelto en un vacío. El navegador intentará mostrar el retorno de la última declaración para que pueda hacer cualquier cosa siempre que la última declaración no devuelva nada, p. javascript: (función hello (msg) {return msg;}) ('BOO!'); void (0); – James
@JimmyP: ¡Gracias por señalar eso! –