Ir para conteúdo
Fórum Script Brasil
  • 0

Inserir Tags


DackAle

Pergunta

Fala galera

alguém conhece algum código pro IE e Firefox pelo menos de inserir TAGS, igual aos dos fóruns PHPBBs da vida ?

Aonde você clica no B e aparece um [ b ] [ / b ] na text área e tal ?

Tentei usar o código da wikipedia e do phpbb, mas é muito complicado para conseguir pegar o código...rs

Qualquer ajuda é bem vinda

Abraços

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Vou tentar aqui, tipow, com certeza não vai dar certo porque não entendo muito disso, mas daí já fica uma idéia pro próximo que postar.

Cria uma função js

function b(){

document.write('')

}

Cria um Input pra chamar essa função. Daí quando clicar vai escrever (eu acho)...

Link para o comentário
Compartilhar em outros sites

  • 0

Veja se é isso que você precisa:

<script language="JavaScript">
function bbcode(code)
{
document.envia.mensagem.value = document.envia.mensagem.value + code;
}
</script>

<form method="post" name="envia">

<INPUT type="button" value=" { B } " onClick="bbcode(' [b][/b] ')"> 
<INPUT type="button" value=" { S } " onClick="bbcode(' [s][/s] ')"> 
<INPUT type="button" value=" { I } " onClick="bbcode(' [i][/i] ')"> 
<br><br>

<textarea name="mensagem" id="mensagem"></textarea>

<br><br>
<input type="submit" value="enviar">

Link para o comentário
Compartilhar em outros sites

  • 0

é isso mesmo :D

agora tentei melhora-la e ficou assim

function bbcode(code) {
    var navegador = navigator.appName;
    var quebra = code.split(" ");
    
    if (navegador == "Microsoft Internet Explorer") {
        var selecaoIE = document.selection.createRange().text;
        if (selecaoIE.length == 0) {
            document.envia.mensagem.value = document.envia.mensagem.value + quebra[0] + "Insira o texto" + quebra[1];
        }
        else 
        {
            var NovaV = quebra[0] + selecaoIE + quebra[1]
            document.envia.mensagem.value = document.envia.mensagem.value.replace(selecaoIE,NovaV);
        }
    }
    else
    {
        var inicio = document.envia.mensagem.selectionStart;
        var fim = document.envia.mensagem.selectionEnd;
        var selecaoFF = document.envia.mensagem.value.substring(inicio,fim);
        
        if (selecaoFF.length == 0) {
            document.envia.mensagem.value = document.envia.mensagem.value + quebra[0] + "Insira o texto" + quebra[1];
        }
        else 
        {
            var NovaV = quebra[0] + selecaoFF + quebra[1]
            document.envia.mensagem.value = document.envia.mensagem.value.replace(selecaoIE,NovaV);
        }
    }
}
</script>

Bugs atuais :P

Por exemplo, se eu estiver digitando e quiser inserir uma tag no meio do texto e não no final dela, quando clico, sempre que insere as tags vai pro final dela, como poderia capturar a posição de onde foi clicado para inserir lá ?

O replace muda perfeitamente, ele troca o texto selecionado, pelo texto selecionado mais as tags, MASSSSSSSSSS por exemplo, vamos supor que tenho mais que uma palavra igual no textarea igual apalavra selecionada, ela vai ser trocada caso estiver antes e não a selecionada...

E último BUG, no firefox, ele não troca o valor selecionado, pelo valor selecionado mais a tag e NÃO gera erro, vi no console e tal, mas não gerou erro, o que poderia ser ?

Abraços e valeuuuuuuuu :)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...