クリックしたときにアクティブな要素になることに依存するツールヒントがあるため、ぼかしで非表示にできます。Safariでフォーカスのアクティブな要素が正しく変更されない
Chromeのようなまともなブラウザでは、<button>
がクリックされたときにアクティブな要素になります。 FFやSafariでは、それはしません(彼らはfocus
を要素に呼び出すことさえしません!)。
私は<a>
に切り替えましたが、それでもSafariではまだ壊れています。ここで
はChromeで試してみて、その後、サファリ、問題のデモです:
document.querySelector('a').addEventListener('click',() => {
echoActiveEl();
});
function echoActiveEl() {
document.querySelector('.active-el-tag').innerHTML = document.activeElement.tagName.toLowerCase();
}
echoActiveEl();
<a href="#blah">Click me</a>
<p>Active element: <span class="active-el-tag"></span></p>
どのように私はSafariが適切に動作し、それがactiveElementなるように要素にfocus
を呼び出すことができます? element.focus()
は何もしません!ありがとう。
編集:e.currentTarget.focus()
が実際に動作しない、e.target
は私<a>
に持っていたspan
に指していました。
document.querySelector('a').addEventListener('blur',() => {
var targetElement = event.target || event.srcElement;
echoBluredEl(targetElement)
});
function echoBluredEl(ele) {
document.querySelector('.blured-el-tag').innerHTML = ele.tagName.toLowerCase();
}
私はe.currentTargetを試したと思っていますが、これは 'this'が' e.currentTarget'を指し示し、どちらかの作業(矢印funcでも) –