vue: 全屏方法報錯-Uncaught (in promise) TypeError: fullscreen error


背景

是一個vue的前端模塊,在系統集成的時候,出了問題。

這個前端模塊有一個全屏顯示的功能,單獨運行前端模塊的時候,全屏功能正常。

可是集成到系統的時候,全屏方法無效並報錯。

很長一段時間我甚至是懷疑vue打包有問題,但單獨打包前端的時候,發現它沒毛病,這里給vue跪下道歉。

報錯信息

控制台報錯:Uncaught (in promise) TypeError: fullscreen error

這里所使用的全屏顯示的方法是:
el.requestFullscreen();
(el = 需要全屏的dom對象)

退出全屏的方法是:
document.exitFullscreen()
(運行環境是谷歌瀏覽器)

打了斷點,單獨運行模塊的時候,我上文中的document是這樣的:

集成到系統以后,document對象變成了這樣:

document.fullScreenEnabled這個參數從true變成了false。

而它所象征的含義是:瀏覽器不支持全屏,或者當前環境下不允許全屏。

嘗試過但無效的解決方案

試着在el.requestFullscreen();之前,手動document.fullScreenEnabled = true;無效,這個參數立即轉變成了false.

解決辦法

這里的模塊,是作為一個iframe引入到系統之中的,引入這個iframe的時候,需要添加屬性:allowfullscreen="true"

例如:

<iframe allowfullscreen="true" width="100%" height="100%" src=""></iframe>

還有個重點:如果iframe里面還引用了其他的iframe,也統統需要加入allowfullscreen="true"屬性。

哇這玩意簡直折騰死我了,主要還是格局小了,一直在模塊內亂竄找bug,沒有去把整個系統在本地跑起來試試,哎,格局小了格局小了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM