Tutoriais

Atualizado em 03 jun 2009 16h35

BBCode Clicáveis [javascript] - Complemento para a função php

  • URL Curta:
BBCode Clicáveis [javascript] - Complemento para a função php
No tópico anterior você aprendeu a criar e a usar a função em PHP para transformar os bbcodes em html.
Agora você vai aprender a fazer com que os bbcodes fiquem clicáveis e para isso precisamos recorrer ao nosso amigo javascript.

Mãos a obra:
//--------------------------------------------------------------------------------------
// FUNÇÃO INSERIR BBCODES - CLICÁVEIS
//--------------------------------------------------------------------------------------
function selecao(obj, def_texto_padrao){
if(obj.constructor == String){obj = document.getElementById(obj);}
var def_texto = (def_texto_padrao) ? function(text){obj.value += text;} : function(){return false;};
var selecao = {text: "", defTexto: def_texto};
if(document.selection){
var faixa = document.selection.createRange();
if(faixa.text){
selecao.text = faixa.text;
selecao.defTexto = function(text){
faixa.text = text.replace(/
?
/g, "
");
}
}
} else if(typeof(obj.selectionStart) != "undefined"){
selecao.text = obj.value.substring(obj.selectionStart, obj.selectionEnd);
selecao.defTexto = function(text){
obj.value = obj.value.substring(0, obj.selectionStart) + text + obj.value.substring(obj.selectionEnd);
return false;
}
} else if(window.getSelection){
selecao.text = window.getSelection().toString();
}
return selecao;
}

function selTexto(obj, antes, depois){
var selecionado = selecao(obj, true);
selecionado.defTexto(antes + selecionado.text + depois);
}


Salve em um arquivo js e inclua em sua página:
<script type="text/javascript" src="bbcode.js"></script>


Agora para usar faça o seguinte:
<a href="javascript:selTexto('descricao', '', '');" title="Negrito"><img src="img/bbcode/bold.png" alt="Negrito" /></a><textarea name="descricao" id="descricao" cols="67" rows="20" class="requerido"></textarea>


Basta ir adicionando os demais bbcodes, prestando atenção no nome da textarea para que funcione corretamente, Ex:
<a href="javascript:selTexto('textarea', '', '');" title="Negrito"><img src="img/bbcode/bold.png" alt="Negrito" /></a><textarea name="textarea" id="textarea" cols="67" rows="20" class="requerido"></textarea>


Segue em anexo um exemplo funcionando com as imagens.

© MNDTI - Tecnologia e Informação. Todos Direitos Reservados. Política de privacidade.