Jump to content

Inserir opções na Text Area


Blue_Acid
 Share

Recommended Posts

Viva

Queria saber se alguem me sabe dizer como é k eu faço um sistem tipo este de escrever no forum, em que tenho um quantidade de texto seleccionado, e dp ao carregar num botão ele no inicio e fim do texto coloca tags html, ou umas tags proprías.

Queria uma coisa simples neste momento, pois apenas preciso de meter Negritos e Itálicos

Um Abraço

SIGNIFICADOS: WWW: Wait,wait,wait... HTML: Hoje Ta Mais Lento.KEYBOARD: Dispositivo usado para entrada de erros no Computador.

Link to comment
Share on other sites

Aqui tens uma maneira de ir buscar o texto selecionado de uma pagina. Presumo que apartir daqui consigas fazer o resto.

<html>


<head>
<title></title>
<script type="text/javascript">
<!--
function getSel()
{
var txt = '';
var foundIn = '';
if (window.getSelection)
{
	txt = window.getSelection();
	foundIn = 'window.getSelection()';
}
else if (document.getSelection)
{
	txt = document.getSelection();
	foundIn = 'document.getSelection()';
}
else if (document.selection)
{
	txt = document.selection.createRange().text;
	foundIn = 'document.selection.createRange()';
}
else return;
document.forms[0].selectedtext.value = "<b>" + txt + "</b>"; /* aqui agarro no texto q queres e ponho as tags desejadas */
}
// -->
</script>

</head>


<body>

Seleciona um pouco deste texto e pressiona o butão do formulario ou o link  <br />

<form action="get">
<input type="button" value="Ver texto selecionado" onmousedown="getSel()" />
<a href="#" onmousedown="javascript:getSel(); return false" class="page">ou Ver Texto Selecionado</a><br />

<textarea name="selectedtext" rows="5" cols="20"></textarea>
</form>
</center>


</body>

</html>

Boa sorte.

Link to comment
Share on other sites

unsignedint obrigado pela ajuda, vou testar e depois aviso se resultou ou ñ.

Um abraço  😄

---------------------------

Já testei, é quase isso o texto que eu quero seleccionar é o que está dentro da Text Area, e não texto de fora.

É uma coisa semelhante ao que se faz aki no forum, para escrever os posts.

Obrigado

SIGNIFICADOS: WWW: Wait,wait,wait... HTML: Hoje Ta Mais Lento.KEYBOARD: Dispositivo usado para entrada de erros no Computador.

Link to comment
Share on other sites

Olha aqui está um exemplo que consegui fazer e por a correr, mas tem um erro, pois não sei porque corre bem no FF e no IE seleciona tudo ?!!

Estranho.

<html>
<head>
<title></title>
<script language="JavaScript">
function display(){
	var txtarea = document.getElementById('entrada');
        var str = txtarea.value.substring(document.getElementById('entrada').selectionStart,document.getElementById('entrada').selectionEnd);  
	document.getElementById('resultado').innerHTML=str;    
} 
</script>
</head>
<body>
<form id="frm1" name="frm1">
<textarea name="entrada" id="entrada" rows="10" cols="70">Aqui tens algum texto para selecionar </textarea>
<br />
<a href="#" onClick="display();" >depois de selecionado o texto clica aqui </a>
<br />
<textarea rows="10" cols="70" id="resultado" name="resultado"></textarea>

</form>
</body>
</html>

Em ultimo caso resta-te analisar o codigo do forum 😄

Boa sorte + 1 vez.

Link to comment
Share on other sites

Obrigado pela ajuda, começo a perceber a ideia, mas tipo eu quero escrever na TextArea e fazer a alteração nessa mesma TextArea.

Bem tenho k arranjar um exemplo para ver o codigo.

Um Abraço

SIGNIFICADOS: WWW: Wait,wait,wait... HTML: Hoje Ta Mais Lento.KEYBOARD: Dispositivo usado para entrada de erros no Computador.

Link to comment
Share on other sites

Eu tenho aqui um exemplo que funciona em tudo que testei, mas não me apetece explicar como funciona... se entenderes optimo, se n, alguem que explique que eu n tou com paciência  :bored:

var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion);
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_win = ((clientPC.indexOf("win") != -1) || (clientPC.indexOf("16bit") != -1));

var bbtags = new Array("[b]", "[i]", "[u]", "[s]", "[url]", "[email]", "[/b]", "[/i]", "[/u]", "[/s]", "[/url]", "[/email]");
var bbcode = new Array();

function AddTextFormat(tag) {
var body = document.forms[0].elements['nome_da_textarea'];

theSelection = false;

if ((clientVer >= 4) && is_ie && is_win) {
	theSelection = document.selection.createRange().text;

	if (theSelection) {
		document.selection.createRange().text = bbtags[tag] + theSelection + bbtags[tag+6];
		theSelection = "";
	}

	return;
} else if (body.selectionEnd && (body.selectionEnd - body.selectionStart > 0)) {
	// Code obtained from:
	// http://www.massless.org/mozedit/

	var selLength = body.textLength;
	var selStart = body.selectionStart;
	var selEnd = body.selectionEnd;

	if (selEnd == 1 || selEnd == 2) {
		selEnd = selLength;
	}

	var s1 = (body.value).substring(0, selStart);
	var s2 = (body.value).substring(selStart, selEnd)
	var s3 = (body.value).substring(selEnd, selLength);

	body.value = s1 + bbtags[tag] + s2 + bbtags[tag+6] + s3;

	return;
}
}
Link to comment
Share on other sites

Nazgulled grato pela tua ajuda, tambem não te preço que me expliques o codigo, mas gostava de saber como faço a interacção com a TextArea.

Obrigado

Um Abraço  😄

----------------------------------

Avisa se poderes como fazes com o teu código. Eu fui ao site que estava na PUB do script, e saquei um script k lá estava.

Fiquem bem  ?

SIGNIFICADOS: WWW: Wait,wait,wait... HTML: Hoje Ta Mais Lento.KEYBOARD: Dispositivo usado para entrada de erros no Computador.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.