RSS Feed

‘JavaScript’ Category

  1. Trabalhando com Mascaras em Java Script

    outubro 26, 2009 by Igor Escobar

    Recentemente, tive problemas com algumas funções já disponíveis na internet para poder facilitar a aplicação de mascaras em campos do tipo string.

    Por exemplo: o cliente precisava que no momento que eu fosse digitando a data no formato (00/00/000) o sistema automaticamente, iria colocando as barras “/” para facilitar o preenchimento do campo.

    Baseando-se neste ,desenvolvi uma função em JavaScript para aplicar qualquer tipo de mascara que você precisar basta informar o template da mesma:

    /**
     * Formata o Campo de acordo com a mascara informada.
     * Ex de uso: onkeyup="AplicaMascara('00:00:00', this);".
     * @author Igor Escobar (blog@igorescobar.com)
     * @param Mascara String que possui a mascara de formatação do campo.
     * @param elemento Campo que será formatado de acordo com a mascara, voce pode informar o id direto ou o próprio elemento usando o this.
     * @returns {void}
     */
    function AplicaMascara(Mascara, elemento){
    
    	// Seta o elemento
    	var elemento = (elemento) ? elemento : document.getElementById(elemento);
    	if(!elemento) return false;
    
    	// Método que busca um determinado caractere ou string dentro de uma Array
    	function in_array( oque, onde ){
    			for(var i = 0 ; i < onde.length; i++){
    			if(oque == onde[i]){
    				return true;
    			}
    		}
    		return false;
    	}
    	// Informa o array com todos os caracteres que podem ser considerados caracteres de mascara
    	var SpecialChars = [':', '-', '.', '(',')', '/', ',', '_'];
    	var oValue = elemento.value;
    	var novo_valor = '';
    	for( i = 0 ; i < oValue.length; i++){
    		//Recebe o caractere de mascara atual
    		var nowMask = Mascara.charAt(i);
    		//Recebe o caractere do campo atual
    		var nowLetter = oValue.charAt(i);
    		//Aplica a masca
    		if(in_array(nowMask, SpecialChars) == true && nowLetter != nowMask){
    			novo_valor +=  nowMask + '' + nowLetter;
    		} else {
    			novo_valor += nowLetter;
    		}
    		// Remove regras duplicadas
    		var DuplicatedMasks = nowMask+''+nowMask;
    		while (novo_valor.indexOf(DuplicatedMasks) >= 0) {
           		novo_valor = novo_valor.replace(DuplicatedMasks, nowMask);
        	}
    	}
    	// Retorna o valor do elemento com seu novo valor
    	elemento.value = novo_valor;
    
    }
    

    Metodos de uso

    Mascara para campos do tipo Data:

    <input name="data" maxlength="10" onkeyup="AplicaMascara('XX/XX/XXXX', this);" type="text" />1
    
    <strong> Mascara para campos do tipo Hora:</strong>
    1<input name="hora" maxlength="8" onkeyup="AplicaMascara('XX:XX:XX', this);" type="text" /> 

    Mascara para campos do tipo CEP:

    <input name="cep" onkeyup="AplicaMascara('XXXX-XXX', this);" type="text" />  

    Mascara para campos do tipo TELEFONE:

    <input name="tel" onkeyup="AplicaMascara('(XX)XXXX-XXXX', this);" type="text" />  

    Mascara para campos do tipo CPF:

    <input name="cpf" onkeyup="AplicaMascara('XXX.XXX.XXX-XX', this);" type="text" />  

    E por ai vai, basta seguir os exemplos e ser feliz ;) Espero ter contribuído!
    []’s


    Posts Relacionados:


  2. Iniciando com o JSON

    outubro 26, 2009 by Igor Escobar

    Alguns dias atrás, recebi um e-mail de um leitor que acabou de iniciar em um novo emprego e seus supervisores lançaram a seguinte necessidade:

    Na nossa empresa temos uma base de dados que ao fazer a consulta X, irá vai te retornar um JSON, ou seja, um valor que por sua notação é denominada JSON.

    JSON quer dizer JavaScript Objection Notation, nada mais é do que um conjunto de chaves e valores, que podem ser interpretadas por qualquer linguagem. Toda essa estrutura, foi criada apartir do padrão ECMA-262 que por sua vez possui convenções muito semelhante às linguagens como C, C#, C++, Java, JavaScript, Perl, Python e várias outras. Com estas características o JSON se torna o formato ideal para troca de informações independente da linguagem.

    Um estrutura JSON pode ser identificada por duas estruturas de dados:

    Uma coleção de pares nome/valor. Em várias linguagens, isto é caracterizado como um object, record, struct, dicionário, hash table, keyed list, ou arrays associativas.

    json-object

    Ex:

    var MeuBlog = {
    nome:"Igor Escobar // blog",
    ano:2008,
    assunto:"Tecnologia",
    getTitle:function(){
    return ('TituloBlog:' + nome);
    }
    }
    

    Uma lista ordenada de valores. Na maioria das linguagens, isto é caracterizado como uma array, vetor, lista ou sequência.
    json-array

    Ex:

    ["Igor Escobar // Blog", 2008, 0]
    

    Viu só? é super simples se trabalhar com o JSON. Não se preocupe ao aplicar estas regras na prática, a teoria é valida para você entender como o JSON gera estes dados, no seu caso (e de muitos), você precisa decodificar um Array ou um Objecto JSON para a sua linguagem nativa.

    Vou utilizar a linguagem PHP, como exemplo, para você entender como funciona e aonde entra o JSON nesta história toda.

    json-na-pratica

    • Primeiro o PHP recebe os dados e envia estes dados para o JSON seja ele um Array ou um Objeto.
    • Depois o JSON codifica os dados e retorna este valor (uma inofenciva string) para uma variavel PHP que por sua vez é responsável por enviar esta váriavel para o banco com os dados codificados.

    JSON na Prática

    Estou disponibilizando aqui o JSON em:

    Mais caso você precise da implementação JSON em outras linguagens basta ir até o site do projeto.
    Na prática você só vai utilizar duas funções do JSON:

    $JSON = new JSON();
    // JSON - Encode
    $dbValue = $JSON->;encode($objetoPHP); // Codifica um objeto PHP -> JSON
    // JSON - Decode
    $dbValue = $JSON->decode($dbObject->campoComJson); // Decodifica um objeto JSON -> PHP Object
    

    E é exatamente isso que no caso do nosso “amigo do e-mail” precisa fazer. Você precisa receber este valor na estrutura de dados JSON e decodifica-lo para que sua linguagem nativa o entenda e interprete.

    Possível problema

    Se você estiver utilizando JSON -> JavaScript e este array/objeto JSON retornar uma estring é possivel que você tenha problemas com caracteres especiais e na hora de exibir apareça uns caracteres como (+%…etc).

    Para corrigir este problema eu implemento em minhas funções javascript a seguinte solução:

    function urlencode(str) {
    str = escape(str);
    str = str.replace('+', '%2B');
    str = str.replace('%20', '+');
    str = str.replace('*', '%2A');
    str = str.replace('/', '%2F');
    str = str.replace('@', '%40');
    return str;
    }
    
    function urldecode(str) {
    str = str.replace(/\+/g, ' ');
    str = unescape(str);
    return str;
    }
    

    E é isso caro “amigo do e-mail”, conte-nos depois como foi a sua experiência iniciando com o uso do JSON e espero que este ajude todas as outras pessoas que forem iniciar com o mesmo.

    Vale lembrar, eu só escrevi este texto por que o nosso amigo aparentemente precisava MUITO, pela iniciação no novo trabalho e claro o seu problema com certeza bate com o de muitas outras pessoas, principalmente, com o objetivo deste blog que é em primeiro lugar, reunir soluções de desenvolvimento em um único lugar.

    Nota: Apartir do PHP 5.2 o JSON já se encontra nativo na linguagem através dos métodos json_encode(); e json_decode();

    Espero ter contribuído!
    []’s


    Posts Relacionados:

    • Nenhum post relacionado!

  3. MooTools 1.2 Image Protector: dwProtector

    outubro 26, 2009 by Igor Escobar

    Hoje venho apresentar para vocês uma biblioteca que achei bastante interessante, escrita para o Framework javascript MooTools, chamada Image Protector, é uma grande novidade e talvez um grande marco para os designers que se descabelam para poder proteger suas imagens.

    Esta biblioteca foi criada justamente para os designers ou artistas, que odeiam ver seus trabalhos copiados e ripados em segundos após dias, semanas, anos de trabalho dedicado, e o pior, as vezes até roubo de autoria.

    O MooTools 1.2 Image Protector previne:

    • right-click “Save Image As”.
    • Arrastar qualquer imagem para o desktop.
    • right-click “Save Background As”.
    • right-click “View Background Image”

    Segue abaixo tudo o que você precisa:

    MooTools 1.2 Image Protector JavaScript Class

    //protector class
    var dwProtector = new Class({
    
    	//implements
    	Implements: [Options],
    
    	//options
    	options: {
    		image: 'blank.gif',
    		elements: $$('img'),
    		zIndex: 10
    	},
    
    	//initialization
    	initialize: function(options) {
    		//set options
    		this.setOptions(options);
    
    		//make it happen
    		this.protect();
    	},
    
    	//a method that does whatever you want
    	protect: function() {
    		//for each image that needs be protected...
    		this.options.elements.each(function(el) {
    			//get the element's position, width, and height
    			var size = el.getCoordinates();
    			//create the protector
    			var p = new Element('img', {
    				src: this.options.image,
    				width: size.width,
    				height: size.height,
    				styles: {
    					'z-index': this.options.zIndex,
    					'left': size.left + 'px',
    					'top': size.top + 'px',
    					'position': 'absolute'
    				}
    			}).inject($(document.body),'top');
    		},this);
    
    	}
    });
    

    Exemplo de uso

    window.addEvent('domready', function() {
    	var protector = new dwProtector({
    		image: '/blank.gif',
    		elements: $$('.protect')
    	});
    });
    

    Caso você queira testar o MooTools 1.2 Image Protector, basta acessar.

    []’s
    Igor.


    Posts Relacionados:


  4. JavaScript não obstrutivo com JQuery

    outubro 26, 2009 by Igor Escobar

    Apenas compartilhando com vocês um slide feito por Simon Willison no dia 6 de maio.

    Unobtrusive JavaScript with jQuery


    Posts Relacionados:


  5. Aumente as chances do seu projeto/site dar certo

    outubro 26, 2009 by Igor Escobar

    O trabalho de concepção e amadurecimento de uma idéia é uma tarefa complicada. Todos os dias converso com profissionais do ramo de Internet e falamos sobre muitas idéias. Todas envolvem dinheiro, seja de forma direta ou indireta.

    O que é muito comum ser dito nesses grupos é sobre como ganhar dinheiro através de programas de afiliados como Google AdSense, Hotwords, Text Link Adst, UOL Links Patrocinados etc.

    Hoje eu não vou falar sobre como otimizar seus ganhos nestes programas, pois acredito que na própria internet, possuem muitos e muitos artigos falando sobre isso, não vale a pena ficar “duplicando” o que é dito por ai tão incansavelmente.

    Cuidado com o dinheiro

    Quando vamos elaborar uma idéia é muito comum pensarmos em dinheiro, é comum, e algo muito maligno para o futuro e sobrevivência do seu projeto. Devemos pensar, claro, porém, pensar só nisso, vai acabar te cegando para outros pontos importantes que vão além do que só encher o bolso de dinheiro.

    Deixe o fator “ganhar dinheiro” para último plano, amadureça a sua idéia todos os dias, anote tudo, não deixe nada escapar, e em último plano, pense em como trazer um retorno para você utilizando tudo o que você planejou de forma sadia, ou seja, de forma que o seu sistema, o seu planejamento, irá te sustentar a longo prazo, sustentabilidade.

    Dando forma a idéia

    Devo ressaltar, que não é meu objetivo ensina-lo como “documentar” a sua idéia, meu objetivo é te ajudar COMO você deve pensar para que o seu projeto dê certo ou ao menos aumente as chances dele dar certo.

    Certifique-se de que você, com sua experiência, consiga garantir longevidade ao seu projeto, o sucesso de um projeto, esta diretamente ligado a sua continuidade e não apenas o seu começo, ser hype esta completamente fora de questão. Não adianta começar algo e não saber como dar continuidade ao que começou.

    Não seja hype, seja original.

    Ser hype tem seus próis e contras, quem acompanha a blogosfera já viu o que tem de blogs por ai que vivem de hypes para poder ganhar dinheiro a curto prazo. Para quem não sabe o que é hype, vou te dar um exemplo:  Cicarelli, já sabe até do que eu estou falando né? Agora tente imaginar a quantidade de dinheiro que os blogueiros e sites que vivem de hypes ganharam com este acontecimento? Postando os videos, fotos e fakes em seus sites? Então, isso é uma hype, porém, o objetivo é manter uma renda, tirarmos da abstração uma idéia e torna-la sustentável.

    A volta é o mais importante.

    Esta talvez seja a parte mais importante no processo de amadurecimento de uma idéia, é muito comum, ver uma pessoa entusiasmada falando de um projeto, que você sabe que é legal, porém,  o idealizador do projeto simplesmente se céga e só consegue pensar em como o projeto vai ser legal por que tem isso e aquilo e zilhões de coisas, coisas que na prática não fazem diferença.

    Se concentrar no que é obvio não é a saída, centre-se em criar funcionalidades ao seu projeto que atribuíram valor ao seu projeto, esta são as melhores características de um projeto de sucesso, o mais importante não é atrair visitas, o mais importante é criar recursos e funcionalidades que farão com que o usuário volte. Esta é a grande sacada, visitas é consequência, a volta do visitante garante a sua sustentabilidade e o sucesso perpétuo (até que alguém lance algo que o substitua) do seu projeto.

    Acredito que se a sua linha de raciocínio caminhar por este lado, isso só irá aumentar MUITO as chances do seu projeto dar certo. Espero ter contribuído com seu projeto, e quem sabe, sua vida, sua profissão.

    []’s
    Igor.


    Posts Relacionados: