Programación en castellano
Inicio > Foros > Javascript > Insertar contenido html dinamicamente en la posición del cursor
-Foros de debate

Javascript
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Insertar contenido html dinamicamente en la posición del cursor
Enviado por amagea el día 10 de febrero de 2005

Perdón, antes he enviado un asunto incompleto.
Hola, me gustaría saber si es posible insertar dinámicamente, o sea, una vez ya cargada la pag html,
algún componente html (texto, imagen,...) en el lugar donde esté el cursor en ese momento.
Lo he intentado con document.selection.createRange(), pero esto sólo me vale para cuando tengo seleccionado algo.
yo lo quiero hacer aun cuando no tengamos nada seleccionado, sino sólo el cursor posicionado en alguna parte de la pag html.

¿alguien me puede ayudar ?

Muchas Gracias.

 
Re: Insertar contenido html dinamicamente en la posición del cursor
Enviado por amagea el día 11 de febrero de 2005

analiza esta página y verás la respuesta:
__________________

<HTML>
<HEAD>
<SCRIPT>
//****************************************************************
function storeCaret (textEl) {
if (textEl.createTextRange)
textEl.caretPos = document.selection.createRange().duplicate();
}
//****************************************************************
function resetCaret (textEl) {
if (textEl.createTextRange)
{
setCaretToEnd(textEl);
}

}
//****************************************************************
function insertAtCaret (textEl, text) {



if (textEl.createTextRange && textEl.caretPos) {
var caretPos = textEl.caretPos;
caretPos.text =
caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
text + ' ' : text;
}
else
{
textEl.value = text;
}

//resetCaret(textEl);
}
//****************************************************************
function setCaretToEnd (control) {
if (control.createTextRange) {
var range = control.createTextRange();
range.collapse(false);
range.select();
}
else if (control.setSelectionRange) {
control.focus();
var length = control.value.length;
control.setSelectionRange(length, length);
}
storeCaret(control);
}
//****************************************************************
function setCaretToStart (control) {
if (control.createTextRange) {
var range = control.createTextRange();
range.collapse(true);
range.select();
}
else if (control.setSelectionRange) {
control.focus();
control.setSelectionRange(0, 0);
}
storeCaret(control);
}

//****************************************************************
function ejecuta(txtJS)
{
eval(txtJS);
}
//****************************************************************
function busca(txt)
{
var tr=document.aForm.aTextArea.createTextRange();
var existe=tr.findText(txt);
tr.select();
alert("El resultado de buscar el texto -"+txt+"- ha sido = "+existe);
}
//****************************************************************
function compruebaFoco(txt)
{
alert("padreSel.name="+padreSel().name);
if(padreSel().name==txt)
{
alert("foco en "+txt);
}
else
{
alert("foco no en "+txt+" sino en "+padreSel().name);
}
}
//****************************************************************
function expandirTR(unidad)
{
var tr=document.aForm.aTextArea.createTextRange();
tr.expand(unidad);
tr.select();
}

//****************************************************************
function exp()
{
var rng = document.selection.createRange();
rng.expand("word");
rng.select();
}
//****************************************************************
function traza()
{
var rng = document.selection.createRange();
var padre=rng.parentElement();
padre=document.activeElement;
alert("PADRE=" +padre.name);

}

//****************************************************************
function padreSel()
{
if(document.selection)
{
return document.selection.createRange().parentElement();
}
else
{
return document.body;
}
}
//****************************************************************
function cambiaCursorW()
{
//alert("inicio ondrag");
document.body.style.cursor='wait';
}
//****************************************************************
function resetCursor()
{
//alert("inicio ondrop");
document.body.style.cursor='pointer';
}
//****************************************************************
function dimeFoco()
{
//alert("el foco lo tiene "+document.activeElement.name);

var padre=document.selection.createRange().duplicate().parentElement();
var nombre=padre.name;
alert("foco="+nombre);
}
//****************************************************************
</SCRIPT>
</HEAD>
<BODY>
<div align="center">
<h3>Página donde se muestra cómo insertar código en la posición del cursor dentro de un TextArea,<br>
así como posicionar el cursor al final y al inicio del texto de un TextArea.</h3>
</div>
<h5>(caret==cursor)</h5>
<FORM NAME="aForm">
<TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);" ONKEYUP="storeCaret(this);" ONDBLCLICK="storeCaret(this);" >
Posiciona el cursor en el lugar donde
quieras introducir el texto del text box de abajo.
</TEXTAREA>
<BR>
<INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="Scriptology">
<BR>
<INPUT TYPE="button" VALUE="insert at caret" ONCLICK="insertAtCaret(this.form.aTextArea, this.form.aText.value);">
<input type="button" value="move caret to end" onclick="setCaretToEnd(this.form.elements.aTextArea);">
<input type="button" value="move caret to start" onclick="setCaretToStart(this.form.elements.aTextArea);">
<br>
<input type="text" name="buscado" size="60" value="Introduzca texto a buscar en el TextArea">
<input type="button" value="Buscar Texto" onclick="busca(document.aForm.buscado.value)">

<br>
<input type="text" name="js" size="100" value="Introduzca código Javascript">
<input type="button" value="Ejecuta Javascritp" onclick="ejecuta(document.aForm.js.value)">
<br>
<input type="text" name="uni" size="40" value="Introduzca unidad de expansión">
<input type="button" value="Expande textRange" onclick="expandirTR(document.aForm.uni.value)">
<br>
<input type="text" name="foc" size="40" value="">
<input type="button" name="botonFoc" value="Comprueba Foco" onfocusin="compruebaFoco(document.aForm.foc.value)" onfocus="alert('tengo el foco')">
<br>
<input type="button" value="Expande" onclick="exp()">
<br>
<input type="button" value="Traza" name="botonTraza" onclick="traza()">
<br>
<input type="button" value="dimeFoco" name="botondimefoco" onfocusin="dimeFoco()">
</FORM>
<script type="text/javascript">
<!--

//-->
</script>
</BODY>
</HTML>

 
Re: Re: Insertar contenido html dinamicamente en la posición del cursor
Enviado por javi-on el día 16 de febrero de 2005

Muy bueno, gracias. Estaba buscando algo así.

 

Re: Re: Insertar contenido html dinamicamente en la posición del cursor
Enviado por Vhs el día 17 de noviembre de 2005

esta super bueno,
pero funciona solo En IE no en firefox

 
Re: Re: Re: Insertar contenido html dinamicamente en la posición del cursor
Enviado por Alek el día 7 de diciembre de 2005

Esto funciona en un textbox tambien??

 




Tienda
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados