¿Alguna sugerencia sobre cuál es la forma más conveniente de detectar si un evento de doble clic no fue en texto, sino en imágenes (u otros elementos en los sitios web)?
Más información: por el momento, uso "document.addEventListener("dblclick", getSelectedText);" para obtener una palabra de doble clic en el sitio web. Pero muchos usuarios de mi extensión se quejan de que a menudo hacen doble clic por error en las imágenes, etc., así que quiero eliminar esos eventos de doble clic.
En lugar de llamar a getSelectedText , podría llamar a una función de ajuste que verifica el tipo de etiqueta del elemento de destino:
function ignoreTargetImages (event) { if (event.target.tagName === 'IMG') { // element is an image, so handle differently or ignore } else { getSelectedText(event); } } document.addEventListener("dblclick", ignoreTargetImages);Puede crear una función que solo llame a su método getSelectedText si el doble clic no fue en una o más etiquetas ignoradas
function ignoreTags(ignoreTags, fn){ return function(e){ if(!ignoreTags.includes(e.target.tagName)) fn(e); } } function getSelectedText(e) { console.log("get the text") } document.addEventListener("dblclick", ignoreTags(["IMG"],getSelectedText)); <p>Some text</p> <img src="https://via.placeholder.com/150">Esto le permitiría agregar a la lista de etiquetas ignoradas si lo necesita.