iT邦幫忙

0

解決使用 Bootstrap Modal 加上 vue-loading-overlay 會報錯: Maximum call stack size exceeded.

  • 分享至 

  • xImage
  •  

在進行專案時發生一個套件衝突的小問題,
當我想在 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


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言