在组件之间导航的焦点正在丢失,我已经强制将焦点设置为菜单按钮,但是一旦路由器导航被更改,焦点也会丢失。是否有修复方法来重置路由更改的焦点?
这些属性也不工作(自动焦点,设置焦点,cdkfocusinitial).
发布于 2020-01-28 02:24:20
最后得到了解决方案,最初模糊了元素,并将焦点设置为相同的元素...working精细!
let blurElement: HTMLElement = document.getElementsByClassName('menubutton')[0] as HTMLElement;
blurElement.blur();
setTimeout(function(){
let focusElement: HTMLElement = document.getElementsByClassName('menubutton')[0] as HTMLElement;
focusElement.focus();
},0);
发布于 2020-01-24 01:43:22
发布于 2020-01-24 04:49:32
这不是完全解决的问题,但是有一些更好、更坏的方法来处理它。我认为在呈现新路由的内容之后,您将不得不调用focus()
,尽管已经有各种尝试使这种情况自动发生,而这一点(正如其他人所指出的那样)并不能真正正常工作。
真正的问题是应该把重点放在上。这可以是简单的,也可以是有挑战性的,取决于您在页面顶部的内容。
请务必阅读这(长)条关于在单页应用程序中更改路由时如何处理焦点的内容。这是迄今为止关于这一主题的最好的实证研究,并提出了一些可行的建议。
https://stackoverflow.com/questions/59893531
复制相似问题