Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
<script type="text/javascript">
function addsmiley(myValue)
{
var myField = document.form2.texto;
if (document.selection)
{
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0')
{
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue + myField.value.substring(endPos, myField.value.length);
}
else
{
myField.value += myValue;
}
}
function getSel(type)
{
var txt = '';
if (window.getSelection)
{
txt = window.getSelection();
}
else if (document.getSelection)
{
txt = document.getSelection();
}
else if (document.selection)
{
txt = document.selection.createRange().text;
}
else return;
var texto2 = document.form2.texto.value;
document.form2.texto.value = texto2.replace(txt, '['+type+']' + txt + '[/'+type+']');
}
</script>
<form name="form2" method="post" action="teste.php">
<img src="images/msn/anjomsnwebpt.gif" alt=":)" onclick="addsmiley('(A)')" />
<img src="images/msn/bahhhhmsnwebpt.gif" alt="8o|" onclick="addsmiley('8o|')" />
<img src="images/msn/beijomsnwebpt.gif" alt="(K)" onclick="addsmiley('(K)')" />
<input type="button" value="B" onclick="getSel('b');" />
<input type="button" value="I" onclick="getSel('i');" />
<input type="button" value="S" onclick="getSel('s');" />
<input type="button" value="<BR>" onclick="addsmiley('[br]');" />
<br />
<textarea name="texto" cols="50" rows="5"></textarea>
<br />
<input type="submit" value="ok" />
</form>
Os Smileys foi fácil, porém falta os String
No ie tah funcionando, ele pega a seleçao e subtrai e transforma, mas e no firefox?
acho que o erro tah nessas linhas aki....
var texto2 = document.form2.texto.value;
document.form2.texto.value = texto2.replace(txt, '['+type+']' + txt + '[/'+type+']');bom em primeiro lugar é contra as regras do forum postar para fazer o topico c destacar!!em segundo lugar ninguem aki tem a obrigação de te ajudar!!
Basta conferir o que fiz errado!
então pq você naum confere??
naum sei c foi daki q você copiou porem está muito parecido começando pelo comentário
http://alexking.org/?p=286&akst_action=share-this
e funciona perfeitamente ja fiz o teste!!
Meu deus, só fiz uma pergunta, e outra copiei sim, pois não sei javascript, ajeitei o código com o pouco que sei, desculpa pela exclamação. Fez soar orden... não era a intenção.
A Funcção que stou com problema não é a de cima, e sim o getselection, que não funciona no FF, se o texto está dentro de uma textarea, pois perde o foco.function getSel(type){var txt = '';if (window.getSelection){txt = window.getSelection();}else if (document.getSelection){txt = document.getSelection();}else if (document.selection){txt = document.selection.createRange().text;}else return;var texto2 = document.form2.texto.value;document.form2.texto.value = texto2.replace(txt, '['+type+']' + txt + '[/'+type+']');}Peço encarecidamente, a ajuda de qualquer um que saiba javascript pois eu não sei, e tentei o cão para fazer funcionar, revirei o google, e não sei se quer aplicar um focus() de maneira correta. se olharem irão perceber, que as duas funções são copiadas, e levemente adaptadas para fazer um menu de inserção de BBcode.Estou tentando desenvolver um, pois em PHP (que ai sim é minha area já fiz um BBcode, para XHTML 1.1, pois meus sites são todos 100% standart. Como irei fazer um forum em um site 1.1, se todos os rich text editor colocam os malditos <b>, ou <strong>....Desculpa mesmo, aquele exclamação soou orden, e na realidade quiz mostrar desespero.Soh quero fazer o que o botãozinho B aki em cima faz, o resto é comigo.o getselection funciona perfeitamente no ff
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <script> function insertAtCursor(myField, myValue) { //IE support if (document.selection) { myField.focus(); sel = document.selection.createRange(); sel.text = myValue; } //MOZILLA/NETSCAPE support else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); } else { myField.value += myValue; } } // calling the function //insertAtCursor(document.formName.fieldName, 'this value'); </script> </head> <body> <input type="text" name="in" id="in"><button type="button" onclick="insertAtCursor(document.getElementById('in'),'@')">hahahaha</button> </body></html>Não não não amigo, quero algo como isso aki
tente escrever um texto no text area, e tenta capturar.... (foi daki que tirei o código, o insertatcursor, tah ok, pois são os smileys)
inferno
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <script> function change(myField) { var myValue = ''; //IE support if (document.selection) { myField.focus(); myValue = document.selection.createRange().text; myValue = "<b>"+myValue+"</b>"; sel = document.selection.createRange(); sel.text = myValue; } //MOZILLA/NETSCAPE support else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myValue = "<b>"+myField.value.substring(startPos, endPos)+"</b>"; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); } else { myField.value += myValue; } } // calling the function //insertAtCursor(document.formName.fieldName, 'this value'); </script> </head> <body> <textarea id="in"></textarea><button type="button" onclick="change(document.getElementById('in'))">hahahaha</button> </body></html>Muito Obrigado cara, era isso mesmo que eu precisava, quando li o //MOZILLA/NETSCAPE support, achei que se tratava do código acima, no primeiro post o addsmiley...Cara desculpa, como já falei não saco nada de script.. olha o ultimo Tópico que pus tu vai ver....----------------------------------------------------------------------------------------------------------------------------------------------Editei o código que me deu, agora basta definir no button o qual tag, e qual textarea ele vai apresenvar.<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Untitled Document</title> <script> function change(tag, textarea) { var myField = document.getElementById(textarea) var myValue = ''; //IE support if (document.selection) { myField.focus(); myValue = document.selection.createRange().text; myValue = '[' + tag + ']' + myValue + '[/' + tag + ']'; sel = document.selection.createRange(); sel.text = myValue; } //MOZILLA/NETSCAPE support else if (myField.selectionStart || myField.selectionStart == '0') { var startPos = myField.selectionStart; var endPos = myField.selectionEnd; myValue = '[' + tag + ']' + myField.value.substring(startPos, endPos) + '[/' + tag + ']'; myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length); } else { myField.value += myValue; } } </script> </head> <body> <textarea id="in"></textarea><button type="button" onclick="change('b', 'in')">hahahaha</button> </body></html>
Ninguem tem uma solução? Basta conferir o que fiz errado!