Vue2中BootstrapVue的b-pagination组件Aria属性在Firefox中失效
BootstrapVue b-pagination 在Firefox中无法获取Aria属性的解决办法
问题根源在于不同浏览器对DOM元素Aria属性的访问实现不一致:Chrome支持直接通过驼峰式的ariaLabel、ariaPosInSet属性访问,但Firefox并未完全兼容这种方式,导致这些属性返回undefined。
解决方法
改用标准的getAttribute()方法访问原生的Aria属性名(短横线分隔形式),这种方式在所有主流浏览器中都能稳定工作。
修改后的JS代码:
pageClicked(e) { // 使用getAttribute获取原生Aria属性,兼容Chrome和Firefox const ariaLabel = e.target.getAttribute('aria-label'); const ariaPosInSet = e.target.getAttribute('aria-posinset'); console.log(ariaLabel, ariaPosInSet); }
额外优化(可选)
如果事件触发源是分页按钮内部的子元素(比如图标、文本节点),e.target可能不是按钮本身,这时候可以通过closest()方法定位到按钮元素,确保获取到正确的属性:
pageClicked(e) { const paginationBtn = e.target.closest('button'); if (paginationBtn) { const ariaLabel = paginationBtn.getAttribute('aria-label'); const ariaPosInSet = paginationBtn.getAttribute('aria-posinset'); console.log(ariaLabel, ariaPosInSet); } }
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

