JavaScript - Añadir una cadena de texto donde está el cursor

 
Vista:
sin imagen de perfil

Añadir una cadena de texto donde está el cursor

Publicado por Pablo (4 intervenciones) el 26/02/2024 23:02:49
Hola tengo este evento:
1
onclick="document.Wysiwyg.Colaboracion.value+='remplace este texto'"
que funciona bien pero sitúa el texto al final y yo quiero que lo haga donde está el cursor como pasa en esta página. Lo he buscado en google y hablan de usar focus() pero no lo consigo ¿Quien me puede ayudar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Añadir una cadena de texto donde está el cursor

Publicado por Pablo (4 intervenciones) el 27/02/2024 15:11:35
1
onclick="document.Wysiwyg.Colaboracion.value+='[b ]remplace este texto[/b ]'+document.Wysiwyg.Colaboracion.focus()"
ya está como sigo... pero así sale undefined.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Añadir una cadena de texto donde está el cursor

Publicado por Alejandro (532 intervenciones) el 27/02/2024 16:27:41
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
La propiedad que buscas es selectionStart.
1
2
3
4
5
6
7
8
<input type="text" id="texto" value="ESTE ES UN EJMEPLO" />
<script>
	document.getElementById('texto').addEventListener('click', function(){
		texto = this.value.split('');
		texto.splice(this.selectionStart, 0, 'remplace este texto');
		this.value = texto.join('');
	});
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Añadir una cadena de texto donde está el cursor

Publicado por Pablo (4 intervenciones) el 28/02/2024 02:05:46
1
<img name="Ejemplo" src="Imagenes/wysiwyg/negrilla.gif" style="border-color:#000000;border-width:1px;border-style:solid;cursor:pointer;" alt="Negrilla" title="Negrilla" onclick="document.getElementsByTagName('Ejemplo').addEventListener('click', function(){var texto = this.value.split('');texto.splice(this.selectionStart, 0, '[ b]remplace este texto[/ b]');this.value = texto.join('');});" />

Gracias por tu interés en resolver mi problema pero no me va, ¿Que hago mal?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.448
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Añadir una cadena de texto donde está el cursor

Publicado por Alejandro (532 intervenciones) el 28/02/2024 17:49:12
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Tu post inicial no es claro, no fue hasta que vi tu ultima linea de código que entendí que intentas hacer.

Lo que tu código hace es que cada que se presione la imagen genere un listener con una función que lo más seguro es que da error, no creo que <img> tenga una propiedad selectionStart.

Básicamente presionas la imagen y se crea el listener y no sucede nada
Vuelves a presionar la imagen, se crea un segundo listener y se ejecuta la función del primer listener que seguramente da error.
Vuelves a presionar la imagen, se crea un tercer listener y se ejecuta la función del primer y segundo listener dando error por cada ejecución.
y así infinitamente o hasta que reviente el navegador XD

Aquí esta el ejemplo funcionando con el caso especifico, aunque supongo que lo siguiente sera que lo aplique al texto seleccionado (¬_¬¡)
1
2
3
4
5
6
7
8
9
10
11
12
<button type="button" id="negrita">N</button><br />
<textarea id="texto">
Este es un ejemplo
</textarea>
<script>
	document.getElementById('negrita').addEventListener('click', function(){
		textarea = document.getElementById('texto')
		texto = textarea.value.split('');
		texto.splice(textarea.selectionStart, 0, 'remplace este texto');
		textarea.value = texto.join('');
	});
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Añadir una cadena de texto donde está el cursor

Publicado por Pablo (4 intervenciones) el 29/02/2024 13:54:56
Ya me quedó perfecto muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar