terça-feira, 4 de setembro de 2012

BrazilJS 2012

Porto Alegre hospedou a maior conferência de Javascript do Universo: a BrazilJS 2012. Realmente, eu duvido que outra civilização avançada criaria um monstrinho como o Javascript. Então, não acho que os organizadores tenham exagerado no título.

Estava presente Brendan Eich, criador da linguagem. Ele declarou-se fã do Scheme e revelou que fora coagido a criar algo parecido com Java. Aparentemente, há também quem pense que Java é uma boa idéia. Pelo menos, ele teve a clarividência de agregar funções de primeira classe.

Foi bom ver um evento deste porte em Porto Alegre, mesmo que as palestras não tenham sido tão interessantes (foram cansativas as tentativas reiteradas dos palestrantes de serem engraçadinhos). Ademais, foi uma boa oportunidade de conhecer o teatro do Bourbon Country; essa experiência eu repeti no domingo com o excelente espetáculo Música de Brinquedo do Patu Fu.

A segunda-feira trouxe de volta a realidade dura do mundo Web. Ao otimizar um script, percebi que o Firefox não implementa a propriedade innerText no DOM. Em seu lugar está a textContent. O meu problema era exibir textos obtidos via JSON que contêm sequências especiais de HTML, como "ação".

Uma maneira simples de resolver isso é inserir o texto numa div via o innerHTML e depois recuperá-lo com innerText (ou textContent).

Aproveitando as facilidades herdadas do Scheme, escrevi a seguinte solução que, usando o jQuery, cria um div e uma função para executar a inserção do HTML e a recuperação do texto:

var _unescape=function() {
  var scratch=document.createElement('div');
  return function(s) {
    return $(scratch).html(s).text();
  }
}();

alert(_unescape('Javascript não é tão ruim, afinal.'));

Graças ao jQuery, não preciso me preocupar com as diferenças entre os navegadores.

Nenhum comentário: