I am getting focused element target with selection API this way below
const target = window.getSelection()?.focusNode;
And when the focusNode is #text HTMLElement, I would want to get the #text Node parent node by doing the following below
console.log((target as HTMLElement));console.log((target as HTMLElement).parentNode as HTMLElement);((target as HTMLElement).parentNode as HTMLElement)?.append( rows);((target as HTMLElement).parentNode as HTMLElement)?.append('<click here to continue new line>');(((target as HTMLElement).parentNode as HTMLElement)?.childNodes[ ((target as HTMLElement).parentNode as HTMLElement)?.childNodes.length - 1] as HTMLElement).innerHTML = '<click here to continue new line>';
This works all the time on chrome, but work on mozilla and fails sometimes along the line where I want to get the parent Node.
((target as HTMLElement).parentNode as HTMLElement) returns null
I have tried to run them in a setInterval function below but it still not working.
let counter = 0;const tt = setInterval(() => { const t1 = (target as HTMLElement), t2 = ((target as HTMLElement).parentNode as HTMLElement) ; if(t1 !== null && t2 !== null) { ((target as HTMLElement).parentNode as HTMLElement)?.append( rows ); ((target as HTMLElement).parentNode as HTMLElement)?.append('<click here to continue new line>' ); (((target as HTMLElement).parentNode as HTMLElement)?.childNodes[ ((target as HTMLElement).parentNode as HTMLElement)?.childNodes.length - 1 ] as HTMLElement).innerHTML = '<click here to continue new line>'; clearInterval(tt); } else { if(counter > 30) { clearInterval(tt); } } counter++;}, 1);
Please I need help on how to solve this problem in such a way that as long as the #text HTMLElement is not null or undefined then its parent node should never ever be null or undefined.