使用 element.focus() 未触发焦点事件侦听器上的元素

Element on focus event listener is not being triggered using element.focus()

知道为什么在这种情况下没有触发事件侦听器吗?

如果我将 focus 更改为 click,它可以正常工作。

jsfiddle:

https://jsfiddle.net/bobbyrne01/cda3tpfq/

html:

<div id="result">
  No focus.
</div>

js:

var myElement = document.createElement('myElement');
myElement.setAttribute('tabindex', -1);
myElement.addEventListener('focus', function() {
  document.getElementById('result').textContent = 'Focus recieved.';
});

myElement.focus();

假设您想要更新 div 中的内部文本,这样的事情应该可行..

html:

<div id="result" tabindex="-1">no focus</div>

js:

var myElement = document.getElementById('result');
myElement.addEventListener('focus', function() {
    myElement.innerText = 'Focus received.';
},true);

然后手动点击 div 聚焦或使用 myElement.focus()