Veo diferentes soluciones en Internet donde se describe cómo detectar la word donde el usuario hizo clic. Pero quiero saber si hay una solución para detectar la letra de una palabra o la posición donde el usuario hace clic. Ex:
<div>this is the text</div> Cuando el usuario hace clic en la primera letra en la consola, debe aparecer t .
¿Hay una solución para encontrar la letra en la que se hizo clic como describí anteriormente usando javascript?
Probablemente pueda usar la API de selección para verificar dónde está el cursor y extraer la letra más cercana a él:
document.onclick = (evt) => { const sel = getSelection(); if (sel.rangeCount) { const range = sel.getRangeAt(0); const targetedNode = range.startContainer; const clickedLetter = targetedNode.textContent.substr(range.startOffset, 1); console.log(clickedLetter); } }; <div>this is the text</div>Pero es muy posible que falle en muchos casos de esquina.
Use Selection.focusOffset para obtener la posición del carácter que está más cerca del foco del clic del cursor.
document.onclick = (event) => { const selection = getSelection(); const charClicked = selection.focusNode.data[selection.focusOffset] if (charClicked) { console.log(charClicked); } }; <div>this is the text</div>