GreaseMonkey é uma extensão para o navegador Firefox que permite ajustar as páginas que você visita.
Ou seja, ele vai modificar a página, diretamente no navegador.
Isto te ajudará a modificar, à vontade, todas as páginas de qualquer site: remover elementos desnecessários de determinadas páginas da web, editar o código HTML, adicionar HTML, modificar /adicionar/remover o javascript, alterar cores, adicionar funcionalidades, aumentar ou diminuir o tamanho das tabelas, formulários, etc...
Veja um exemplo do script: https://sebsauvage.net/temp/ccm/ccm.user.js
Este script vai editar as páginas do "Commentçamarche.net" para expandir a área de entrada da mensagem nos fóruns.
A parte importante do script é:
setAttributeOfElement('rows','40',"//textarea[@name='message']"); setAttributeOfElement('cols','120',"//textarea[@name='message']");
Estas duas linhas alteram o tamanho (rows, cols) da área de texto (textearea) que servem para digitar as mensagens (identificadas pelo nome ="message").
Utilizamos XPath (//textearea...) para selecionar o elemento a ser modificado.
XPath é um maneira simples para designar elementos precisos de uma página HTML, mas seu uso não é obrigatório.
Você pode passar pelos métodos DOM tradicionais (.getElementsByTagName() e fazer um loop, etc.)
Esse script também contém a linha:
setAttributeOfElement('style','font-weight:bold;',"//td[text()='0']/../td[1]/a"); }
Na lista de discussões do fórum, os títulos dos tópicos que ainda não receberam uma resposta aparecerão em negrito.
O caminho XPath é feito assim:
Exemplos:
No Firefox, você pode utilizar o DOM Inspector para ajudá-lo a encontrar os elementos a serem Selecionados (CTRL+MAJ+I).
Você também pode utilizar a extensão XPather para testar suas expressões XPath.
O script ccm.user.js contém 4 classes utilitárias para facilitar a sua vida:
caminho é o caminho XPath do elemento.
Exemplos:
...<td><span class="comentário">blablabla</span></td>...
Para excluir o blablabla, fazer: removeElement('//td/span[@class='comentário']');
Para excluir a célula (td) com este blablabla: removeElement('//td/span[@class='comentário']/..');
Para excluir todos os comentários, mesmo se eles não estiverem dentro de uma célula de tabela, você deverá fazer: removeElement('//span[@class='comentário']');
...<table width="400px" bgcolor="#ffe">...
Para excluir o tamanho indicado nesta tabela: removeAttributeOfElement('width','//table[@bgcolor='#ffe']');
...<table width="400px" bgcolor="#ffe">...
Para forçar a largura da tabela: setAttributeOfElement('width','100%','//table[@bgcolor='#ffe']');
Para editar a fonte padrão de uma página web:
injectCSS('body{font-family:Verdana,sans-serif; }');
Esse script vai modificar a visão que você terá do site sebsauvage.net.
removeElement("//img[@src='images/nbt_gros_oeil.gif']");
removeElement("//img[@alt='Digital Networks']/../../../../..");
removeAttributeOfElement (`align',"//td [contains (., `Última atualização:')] ")
injectCSS ('body{background-color:#eef;color: #f80;")
Página do extensão GreaseMonkey
Livro em inglês sobre o GreaseMonkey (com exemplo)
Um site com milhares de scripts prontos
Nota: Escrever scripts GreaseMonkey nem sempre é coisa fácil (é preciso dominar o Javascript, DOM, HTML, CSS e, eventualmente, o XPath).
Platypus é uma extensão do Firefox para gerenciar, automaticamente, os scripts GreaseMonkey
No entanto, Platypus tende a gerar um código Javascript bastante lento e pesado.