解决使用 Bootstrap Modal 加上 vue-loading-overlay 会报错: Maximum cal

在进行专案时发生一个套件冲突的小问题,
当我想在 Bootstrap Modal 上使用 vue-loading-overlay 的 loading 时,会报错:
Maximum call stack size exceeded.

中途发现拿掉 .modal 身上的 tabindex="-1" 属性就能够 work。

后来和小伙伴们更进一步查了一下,原来发生这种情况是因为:

vue-loading-overlay 不允许任何 html 元素在 loading 出现时处于 focus 状态。
而 Bootstrap Modal 预设初始化时是 focus 状态。

所以,最根本的解决方法应该是:
.modal 身上加上 data-focus="false"
.


.
不过为什么拿掉 tabindex="-1" 属性也够 work,就不太懂了。

如果没有指定,它的默认值为 0。

tabindex="0" ,表示元素是可聚焦的,
并且可以通过键盘导航来聚焦到该元素,它的相对顺序是当前处于的 DOM 结构来决定的。
—— mdn web docs

这表示 .modal 还是有可能处于 focus 状态。
如果有各位大大知道为什么请再告诉我,存粹好奇,谢谢。

.

不过能解决就好了。 ;)


参考连结:
https://github.com/ankurk91/vue-loading-overlay/issues/26
https://getbootstrap.com/docs/5.2/components/modal/#options
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Global_attributes/tabindex


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章