Coisas De Web

Nome:
Local: Rio de Janeiro, RJ, Brazil

Que perguntinha hein?! Mas vamos lá, adoro estudar assuntos relacionados à web, sempre que posso aprendo uma tecnologia, técnica ou linguagem nova. Tento sempre ver quais são as tendências e acompanha-las, enfim eu sou um eterno aprendiz. Deixando o lado profissional, entrando no lado pessoal, sou uma pessoa super gente-boa (pelo menos eu me acho. rs), adoro curtir a night, sair com os amigos, fazer novas amizades e viajar (tem coisa melhor do que isso?) Acho que você já está sabendo demais sobre mim. Fuiii...

quarta-feira, 9 de janeiro de 2008

Inspecionando propriedades com o watch

Vamos nessa que o tempo ruge e a sapucaí é grande!
Cada vez que leio um pouco mais sobre desenvolvimento, mas eu vejo que tenho que estudar, isso de certa forma é bom, pois nunca haverá alguém bom o suficiente que não tenha o que aprender é aquela velha frase "Estudar (Ler) é um universo em desencanto", agora que viajamos um pouco voltaremos ao tema. Essa função watch, é muito interessante e não vejo muita gente comentando sobre ela por aí, então resolvi trazer esse assunto. Tomará que para você seja inédito o uso dela, pois fiquei super empolgando quando descobri a engine da coisa.

Watch

Definição: Executa uma função específica quando é atribuído um valor à propriedade observada.
Sintaxe: instObj.watch(propriedade, função);
Obs: a propriedade fica entre aspas dupla (").

No final das contas, ele funciona como um debugador.

Código:

objeto = {propriedade:"funciona ?"}
objeto.watch("propriedade", handler);

function handler (id, velhoVal, novoVal) {
//Confirmo se o usuário quer receber o novo valor da propriedade, senão continua com o mesmo valor.
return (confirm("objeto."+id+" era"+velhoVal+" agora é "+novoVal+". Deseja receber o novo valor?"))?document.write(novoVal): document.write(velhoVal);
}

objeto.propriedade = "Claro que sim";


Explicando o código acima:
linha 1 -> Crio um objeto, no qual a propriedade recebe o valor (funciona?)
linha 2 -> Mando o javascript inspecionar a propriedade (propriedade) do objeto (objeto) chamando a função handler.
linha 3 -> a função handler, como pode-se observar possui 3 parâmetros (id, velhoVal, novoVal), são parâmetros padrão e não é possível passar outros parâmetros à essa função (até onde eu sei, pelo menos), onde estes por sua vez são:
. id -> Identificação da propriedade que é inspecionada.
. velhoVal -> O valor antigo da propriedade.
. novoVal -> O valor novo da propriedade.
Obs: Manter a ordem dos parâmetros.
linha 4 -> Texto de exibição
linha 5 -> Essa linha é importante, é o valor que a propriedade irá conter, se você não der um retorno para essa função a propriedade vai ter o valor undefined. Com esse watch pode-se atribuir qualquer valor de retorno à essa propriedade. Chocante né?!

linha última -> Troco o valor da propriedade para o handler ser executado.

Todos os objetos, descendem essa função.

Mais uma coisa, se você não quiser mais "inspecionar" a propriedade usa a função unwatch.

Usando o mesmo exemplo.
Código:

objeto.unwatch("propriedade");


Divirtam-se, pois achei isso o máximo

[UPDATE]
Na linha do retorno do novo valor, pus um document.write para exibir apenas o valor da variável, dessa forma é possível visualizar toda a operação
Como observado pelo Micox, o IEca não dá suporte à essa propriedade
[/UPDATE]
Fuiii...

Marcadores:

quinta-feira, 3 de janeiro de 2008

Desabilitar o menu do botao direito do mouse

Mais um post fast-fast!
Essa dica é bem massa, se você usa o Yahoo!Mail, já percebeu que ao clicar com o botão direito, o menu exibido não é o do browser e sim do próprio Yahoo!, o menu do browser está desabilitado. Então vamos nessa:


document.oncontextmenu = function () {
alert("Menu do browser desabilitado");
return false;
}


Divirta-se!

Fuiii...

Marcadores: , ,

quarta-feira, 2 de janeiro de 2008

Desabilitar o selecionar texto do mouse

Algumas vezes não queremos que em nossas páginas o "selecionar texto" do mouse fique habilitado, aqui vai uma dica legal pra quem quer desabilitá-lo, infelizmente acredito que não funcione em todos os browsers, testei apenas no IEca e no FF e funfou perfeitamente, quem quiser testar em outro browser, sinta-se à vontade e comente aqui se funcionou. XD


if (typeof document.onselectstart!="undefined") //IEca
document.onselectstart=function(){return false}
else //FF
document.body.style.MozUserSelect = "none";


O FF não possui a propriedade onselectstart, o que achei estranho, e o IEca possui.
O FF possui a propriedade MozUserSelect, que pertence apenas à ele.
Não tenho certeza se a propriedade onselectstart é suportada por outros browsers.


Fuiii...

Marcadores: , ,