Busca de CEP, sempre foi um grande problema em grandes empresas, mas para pequenos projetos nem se fala. O objetivo não é ter 100% de certeza para busca de cep, mas sim uma alternativa via internet sem grandes complicações.
Vantagens
- É melhor ter uma busca de 90% dos casos do que nada
- Sem custo com base dos correios
- Sem custo de infraestrutura
- Muito, mas muito simples utilizar o código
Desvantagens:
Ao que interessa, como fazer.
Uma mistura de jquery, plugin de mascara, html é possível ter uma busca de CEP no seu formulário. A magia está na unica possibilidade de se fazer um cross-request em um browser com dominios diferentes, getScript do jquery. Ele vai fazer uma requisição do tipo GET em um script. Pensando nisso e utilizando o próprio exemplo do
site republica virtual, é possível fazer a busca online de CEP.
O Script:
function findCEP() {
if($.trim($("#zipcode").val()) != ""){
$.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+$("#zipcode").val(), function(){
if(resultadoCEP["resultado"] == 1){
$("#street").val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$("#district").val(unescape(resultadoCEP["bairro"]));
$("#city").val(unescape(resultadoCEP["cidade"]));
$("#state").val(unescape(resultadoCEP["uf"]));
$("#number").focus();
}else{
alert("Endereço não encontrado para o cep ");
}
});
}
}
Teste a busca:
Download dos fontes: http://eliezer.com.br/files/cep-javascript.zip
Saiba mais sobre a base, exemplos no site: http://www.republicavirtual.com.br/cep/
Nova versão do Inotes Contacts disponível aqui. Essa versão corrige o bug da API gmail-greasemonkey. Detalhes sobre o problema em: http://code.google.com/p/gmail-greasemonkey/issues/detail?id=39
A solução foi implementar um listener que monitora a pagina no gmail e inclui o botão do Inotes.
Para que não conhece tem um post explicando o script.
Não estou querendo que todos abandonem o Inotes da IBM, pois se trata de uma ferramenta de e-mail muito boa. Mas como todo software tem limitações, e a principal delas que me atrapalha muito é o espaço. Tem outro fator que ajuda, centralizar todos os seus e-mails em um único lugar.
Então uma alternativa é colocar a sua conta do gmail para baixar os e-mails do inotes via pop3. Mas essa solução traz outro problema, os contatos do seu domínio do inotes não ficam mais acessíveis.
Para corrigir isso trabalhei em um script Greasemonkey que resolve meu problema.
Espero que seja útil para mais pessoas também.
Como funciona:
Uma combinação de tecnologia deu origem ao script.
Firefox 3.5 + gmail + inotes + Greasymonkey + javascript + gmonkeyAPI + GM_xmlhttpRequest + xpath + dedicação = “IBM Inotes Contacts in Gmail”
O Script está hospedado no userscripts.org o maior repositório de scripts existente.
Instalação:
Depois de intalado, defina as configurações da sua conta no script:
1
2
3
| InotesContacts.config.domain = ""; //Define your domain here (ex.: inotes.yourdomain.com)
InotesContacts.config.user = ""; // Set your username
InotesContacts.config.password = ""; //Set your password |
Veja o screeanshot:

Qualquer problema, sugestão, melhoria, agradecimento acesse a pagina do script aqui
Para que gosta do código, o fonte está aqui.
XML simples de clientes com tipo de pessoa. Nesse exemplo vou usar xpath para pegar apenas os clientes do tipo ‘F’
1
2
3
4
5
6
7
8
9
10
11
12
13
| <xml>
<clientes>
<cliente id="1" tipoPessoa="F">
<nome>Eliezer Rodrigues</nome>
</cliente>
<cliente id="2" tipoPessoa="J">
<nome>Empresa Abz teste</nome>
</cliente>
<cliente id="3" tipoPessoa="F">
<nome>Maria da Silva</nome>
</cliente>
</clientes>
</xml> |
Codigo completo, para fazer o teste, cole no firefug e rode:
1
2
3
4
5
6
7
8
9
10
11
12
| var xmlString = "<xml><clientes><cliente id='1' tipoPessoa='F'><nome>Eliezer Rodrigues</nome></cliente><cliente id='2' tipoPessoa='J'><nome>Empresa Abz teste</nome></cliente><cliente id='3' tipoPessoa='F'><nome>Maria da Silva</nome></cliente></clientes></xml>";
var parser=new DOMParser();
var doc = parser.parseFromString(xmlString,"text/xml");
var xpath= "//clientes/cliente[@tipoPessoa = 'F']";
var xmlObject = doc.evaluate( xpath, doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null );
var i=0;
while ( (entry = xmlObject.snapshotItem(i) ) !=null ){
alert("Nome: "+entry.firstElementChild.textContent);
i++;
} |
legal neh?