Bookmarklet
# Bookmarklet

Um bookmarklet é um pequeno programa em JavaScript que é armazenado como uma URL nos Favoritos dos mais populares navegadores ou como hiperligações em páginas da internet. Devido ao Internet Explorer usar o termo favoritos ao invés de marcadores, bookmarklets também são chamados de favlets ou favelets (o termo foi inventado por Tantek Çelik em 6 de setembro de 2001 (email pessoal)).
Bookmarklets podem ser salvos e utilizados como se fossem marcadores comuns. Assim, são simples ferramentas de "um clique" que podem adicionar muitas funções para o navegador. Eles podem, por exemplo:
* Modificar a forma que um página é mostrada (mudando a fonte, o fundo, etc...).
* Extrair informações da página, como hyperlinks, imagens, texto, e etc...
* Ir diretamente para um mecanismo de busca e procurar por uma palavra que foi selecionada ou solicitada por uma caixa de diálogo.
* Submeter uma página para um serviço de validação.
Steve Kangas, da www.bookmarklets.com, criou o termo "bookmarklet", baseado na ideia sugerida no Guia do JavaScript da Netscape.
Brendan Eich, que desenvolveu o JavaScript na Netscape, deu a sua contribuição com a invenção do protocolo javascript:, que tornou possível os bookmarklets:
   Eles são uma característica proposital, de forma que eu inventei a URL javascript: junto com o JavaScript em 1995 e queria que as URLs javascript: pudessem ser usadas como qualquer outro tipo de URL, inclusive ser um marcador.
   Particularmente, eu fiz possível ser gerado um novo documento ao carregar, por exemplo, javascript:'alo, mundo', mas também (a chave para os bookmarklets) carregar um programa qualquer usando o DOM do documento atual, por exemplo, javascript:alert(document.links[0].href). A diferença é que o último tipo de URL usa uma expressão que avalia um tipo indefinido em JS. Eu adicionei o operador void no JS antes do Netscape 2 para facilitar o descarte de qualquer valor definido em uma URL javascript:.
Um exemplo é esse bookmarklet que irá pesquisar na Wikipédia pela palavra que está selecionada no momento no navegador:
    javascript:Qr=document.getSelection; if(!Qr){void(Qr=prompt('Keywords...',''))}; if(Qr)location.href='http://pt.wikipedia.org/w/wiki.phtml?search='+escape(Qr)
Se nada estiver selecionado, será mostrado um diálogo solicitando uma palavra.
Bookmarklet para mudar a margem direita para 45% e fazer a Wikipedia mais legível:
    javascript:(function{var newSS, styles='body { margin-left:0%; margin-right:45%;}';if(document.createStyleSheet) {document.createStyleSheet(%22javascript:'%22+styles+%22'%22); } else { newSS=document.createElement('link'); newSS.rel='stylesheet'; newSS.href='data:text/css,'+escape(styles); document.getElementsByTagName(%22head%22)[0].appendChild(newSS); } });