Leandro Mercês Xavier

Web Standards, Tecnologias Web, Mozilla, Usabilidade e Conteúdo.

Mozilla Developer Center Mozilla Brasil Webly Sobre Mim

Javascript orientado a objetos

Para um melhor entendimento deste artigo, é necessário algum conhecimento sobre programação orientada a objetos, existem vários artigos na web e bons livros dedicados ao assunto. Tomemos como exemplo de objeto, um ventilador. Ao olharmos para este objeto, podemos identificá-lo dentre outros eletrodomésticos pelas suas características. Outros ventiladores podem apresentar características idênticas, porém são objetos distintos. Um ventilador pode estar desligado ou ligado em algumas velocidades. Detalhes de sua estrutura ficam ocultos internamente, pois não precisamos conhecê-los para fazer uso do mesmo.

Javascript difere-se de linguagens clássicas orientadas a objeto como Java e C++ principalmente por não possuir uma definição formal de classe. Entretanto possui seu próprio tipo de herança baseada em protótipo e faz uso constante de objetos baseando-se nesse tipo de herança.
(leia mais…)

Usando privilégios expandidos em navegadores Mozilla

Navegadores Mozilla dispõem de funções para segurança em Javascript similares às usadas para segurança em Java e Javascript no Netscape Communicator 4.x.

Em casos mais simples, o código pede permissão para habilitar o privilégio que possibilita o acesso ao alvo através de scripts. Por exemplo:


netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");

//ou: 

netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead UniversalFileRead");

Quando este método é invocado, se a assinatura for válida (caso seja um script assinado) ou codebase principal esteja habilitado, os privilégios expandidos são concedidos. Caso o acesso não seja por meio de uma destas formas, por exemplo, utilizando um arquivo local através da url file://, será exibida uma caixa de diálogo perguntando se o usuário permite que o script use estes privilégios e também se deseja memorizar esta decisão. Note que no segundo exemplo o script solicita dois privilégios, porém exibe apenas uma caixa de diálogo descrevendo-os.

Os privilégios são concedidos apenas no escopo da função que os solicitou. Este escopo inclui as funções chamadas por esta função. Quando a função termina, os privilégios não são mais aplicáveis.
(leia mais…)

LMXHttpGet

LMXHttpGet é um objeto que desenvolvi para facilitar a troca de informações entre páginas através de variáveis utilizando Javascript. Fornece propriedades e métodos para manipular variáveis enviadas para a página atual através do método HTTP GET.

Propriedades:

  • length = Específica o número de variáveis enviadas ao objeto.

Métodos:

  • getVar(varName) = Retorna o valor da variável especificada em varName.
  • getVars() = Retorna um array contendo todas as variáveis e seus respectivos valores.

Todas as propriedades e métodos do objeto LMXHttpGet são estáticos. Por exemplo, você deve acessar a propriedade length como LMXHttpGet.length e o método getVars como LMXHttpGet.getVars().

Vou demonstrar um exemplo simplório em que enviamos valores que definirão a cor de fundo (background-color) e a cor do texto (color) de uma página que será aberta através de um hyperlink.

O hyperlink que abre a página gettest.htm enviando as variáveis backColor e color:


<a href="./gettest.htm?backColor=rgb(102, 136, 170)&color=rgb(0, 255, 102)">Teste LMXHttpGet</a>

O código javascript da página gettest.htm:


window.onload = function() {
    if (LMXHttpGet) {
        var getVars = LMXHttpGet.getVars(); // Retorna um array com as variáveis
        if (LMXHttpGet.length == 2) {
            // Verifica se as variáveis foram passadas
            with (document.getElementsByTagName("body").item(0).style) {
            backgroundColor = getVars["backColor"];
            // Utilizando o array
            color = LMXHttpGet.getVar("color");
            // Utilizando o método getVar()
            }
        }
    }
}

O script está disponível sob a licença MIT em http://leandromerces.org/javascript/lmx/LMXHttpGet/LMXHttpGet.js

lmxSyntaxHighlight

Desenvolvi uma função que destaca código javascript utilizando expressões regulares e DOM. Na versão atual (1.0) realiza a formatação apenas em navegadores Gecko/20060414 (como Mozilla 1.7.13) ou superior. Nos demais navegadores não altera o código original.
O uso é bem simples, basta adicionar o conteúdo do script na marcação como no exemplo abaixo:


<pre class="javascript"><code>
//aqui vem o código javascript
</code></pre>

Feito isso chame a função. Abaixo um exemplo que a chama ao carregar a página:


window.onload = lmxSyntaxHighlight;

// Esta caixa é um exemplo de uso da função.

O script está disponível sob a licença MIT em http://leandromerces.org/javascript/lmx/lmxSyntaxHighlight/lmxSyntaxHighlight.js

Novidades sobre Firefox 2

Firefox 2 tem seu lançamento previsto para o segundo semestre de 2006 e conta com várias melhorias e novos recursos para desenvolvedores e usuários finais, incluindo Javascript 1.7 e pesquisa aprimorada.

Para conhecer detalhes visite:

JavaScript 2 e o futuro da web

Javascript 2 será finalizada em 2007. Para ajudar à migração, um compilador open source JS2 para JS está sendo desenvolvido, fazendo da JS2 uma realidade em 2006. O trabalho neste compilador e nas características novas de JS2 é apresentado pelo criador da Javascript, Brendan Eich, na XTech 2006.

Os slides de Brendan Eich na XTech 2006 estão dispiníveis no Mozilla Developer Center.