Script para escrever a meio de uma textbox em html/javascript

Noeljunior

I fold therefore I AM
Boas

Estava aqui a fazer uma coisita cá para casa e dava-me jeito que ao seleccionar um item numa combobox escrever o que eu quisesse no sítio onde o cursor está num outra textbox.
Ou seja, estou a meio de um texto e quero meter uma imagem. Ele adiciona o <img ...> no meio do texto para quando eu gravar esse texto e o for ver numa outra página ele mostrar a imagem no meio do texto. Penso que me percebem.

Obrigado desde já ;)

Cumps
 
Fazes um evento em js, quando selecionas a combo, les o conteudo da combo box e acrescentas ao que já tens a tag img depois passas esse codigo para a pagina e mostras pensso que e isso
 
Mais ou menos. Essa parte já ia conseguir fazer. E agora já arranjei maneira de ler a posição do cursor da textarea.

A ideia é com esse numero escrever nesse sítio. Ou seja, usemos a string "abcdef" e sei que o cursor está no 3º caracter. Ao seleccionar a combobox ele ficava "abc<img...>def".

Haverá como?
 
Quando meto duvidas consigo resolver o meu problema, quando nao meto não consigo. Mas geralmente quando meto as duvidas nao a resolvo aqui lol

Bem, isto para dizer que consegui de forma simples, sem o imenso código que vimos na net. Se alguém precisar de algo parecido fica aqui um script. Não está muito organizado porque agora é que o vou trabalhar, mas está simples de perceber, julgo eu.
Código:
<form>
<textarea type="text" name=coiso rows=4 onkeyup="g(this)" onclick="g(this)"></textarea>
<input type="text" name="position"> 
<input type=button name=mudar onclick="s(this)" value="mudar">
</form>

<script type="text/javascript">
function g(el){ //chamar esta funcao com onclick e onkeyup na textbox/textarea
var sel, rng, r2, i=-1;

if(typeof el.selectionStart=="number") {
i=el.selectionStart;
} else if(document.selection && el.createTextRange) {
sel=document.selection;
if(sel){
r2=sel.createRange();
rng=el.createTextRange();
rng.setEndPoint("EndToStart", r2);
i=rng.text.length;
}
} else {
el.onkeyup=null;
el.onclick=null;
}

el.form.elements["position"].value=i;
}

function s(x) { var pos; //chamar esta a funcao para devolver o que queremos
    pos = x.form.elements["position"].value;
    ta = x.form.elements["coiso"].value;
    ta1 = ta.substring(0,pos) + "<img>" + ta.substring(pos,ta.length); //entre "" fica o que queremos por no meio da string
    alert(ta1); //a variavel ta1 é a string modificada
    }
</script>
 
Back
Topo