JSFiddle - React, Tailwind, and code Playground
HTML
<div tabindex="-1" id="scripted" contenteditable="true">Element Z (script-only focusable)</div>
<div id="test">Set Focus To Element Z</div>
CSS
div:focus {
background-color: Aqua;
}
JavaScript
document.getElementById('test').onclick = function () {
document.getElementById('scripted').focus();
placeCaretAtEnd(document.getElementById('scripted'));
};
function placeCaretAtEnd(el) {
el.focus();
if (typeof window.getSelection != "undefined"
&& typeof document.createRange != "undefined") {
var range = document.createRange();
range.selectNodeContents(el);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
} else if (typeof document.body.createTextRange != "undefined") {
var textRange = document.body.createTextRange();
textRange.moveToElementText(el);
textRange.collapse(false);
textRange.select();
}
}