Javascript & Acessibilidade 27 Jun 2007 12:43 pm

Javascript Não-obstrutivo II - O Retorno

Para ser bem objetivo, no post anterior sobre javascript não-obstrutivo mostrei 2 exemplos, um correto, outro não.

Por que correto?

Este exemplo podemos dizer que é correto por 2 motivos principais:

  • Trabalha com camadas, o javascript interage sempre externamente, sem se misturar com html.
  • Acessibilidade, se o javascript do navegador estiver desabilitado o visitante verá a informação.

Ok, entendi a teoria, mas onde está isso no código?

No exemplo correto o javascript é carregado de um arquivo externo neste momento:

<script src="jsnobs.js" type="text/javascript">

Todo javascript está neste arquivo jsnobs.js, por meio de eventos ele acessa o html e interage com o mesmo.
O arquivo JS está aqui.

Reparem, existem 2 funções chamadas fadeIn e fadeOut, servem somente para fazer o esmaecimento, ou seja, aparecer e desaparecer as divs.
Mais abaixo temos o que interessa, que é o evento onload, usado neste exemplo para termos certeza que vamos acessar o DOM, o html, somente depois de carregado.
Ali diz que quando o documento for carregado deve executar as instruções que vem na sequência .

window.onload

A parte abaixo pega todos os links da página e os guarda como uma array na variável pegalinks.

pegalinks = document.getElementsByTagName("a");

O laço for percorre todos os links da página.

for(i=0;i<pegalinks.length;i++)

Em cada link comparamos se ele tem o id que procuramos, usei o id neste caso para definir qual link iria trabalhar, pois não iriam repetir, lembrando que o id de cada elemento em uma página deve ser único, caso precise trabalhar com mais links, sugiro usar o atributo “rel”.

if(pegalinks[i].id=="mostra_quadrados")

Caso seja o link que procuramos ele exibe os quadrados chamando a função fadeIn quando este link for clicado.

pegalinks[i].onclick = function(){
fadeIn("q1");
fadeIn("q2");
fadeIn("q3");
return false;
}

Caso seja o outro link procurado, escondo os quadrados usando este código:

pegalinks[i].onclick = function(){
fadeOut("q1");
fadeOut("q2");
fadeOut("q3");
return false;
}

Ok, isso mostra como trabalhamos com camadas, o javascript todo fora do html.
A questão da acessibilidade é que mesmo tendo o javascrip trabalhando em outra camada, eu ainda sim, inseri o link para a página com o conteúdo no html.
Ira exibir de uma forma não tão bela, mas vai exibir, e isso é o mais importante.

<a href="quadrados.htm" id="mostra_quadrados" title="Mostrar quadrados">
Mostrar quadrados</a>

Alguém certamente vai perguntar, mas porque quando o javascript está ativado ele ignora o atributo “href” do link e obedece somente ao javascript?
Reparem a ultima linha do evento “onclick” no javascript:

return false;

Isso indica para fazer o que vem antes daquilo e depois não fazer mais nada, ou seja, ignorar o “href”, pois ele sempre é executado depois do que vem com evento onclick.


5 comentários em “Javascript Não-obstrutivo II - O Retorno”

  1. on 27 Jun 2007 at 5:57 pm 1.Leandro Gouveia escreveu …

    Cara, eu acho doido esse esquema de acessar o html de fora, mas é muito complicado… to estudando mas vai levar um tempo até conseguir fazer algo que preste.

    Curti esse exemplo.
    A funçãozinha do efeito la de sumir que gostei, simples e facil de usar.

    Vlw.

  2. on 25 Jul 2007 at 3:54 pm 2.Rodrigo Fante escreveu …

    Pior, nao tirei, apaguei sem querer mesmo ao colocar o novo layout no ar. :/

    Vou refazer e coloco de novo em breve.

Trackback para este Post | Assine o Feed RSS dos comentários

Comente