天天看點

tinymce中使用media,視訊儲存到編輯區域時,會出現兩個video,點選空白會消失一個,再點選video又出現兩個

最近在使用tinymce開發,踩了不少坑,多數問題都能夠查閱資料或者看文檔來解決,這裡記錄一個沒找到相關資料的問題。

1、問題概述

如下圖所示,上傳了一個視訊,儲存之後,在編輯區域會顯示兩個,并且點選會有toggle的行為。

項目用的是vue-cli3 + vue2 + @tinymce/[email protected]

tinymce中使用media,視訊儲存到編輯區域時,會出現兩個video,點選空白會消失一個,再點選video又出現兩個

排查問題的過程中,試過從上傳函數、依賴包版本、tinymce的init配置等等入手,但是都沒發現問題,後來發現這個現象像是一種點選,然後出現編輯工具之類的行為,去官網看了一下demo,果然:

tinymce中使用media,視訊儲存到編輯區域時,會出現兩個video,點選空白會消失一個,再點選video又出現兩個

既然是這樣,那很可能就是某些東西沒有正确的引入。然後本地跑項目又沒報錯,也沒啥提示,就很dt。看了很多css的引入、主題的引入啥的,各種各樣,但是都沒效果,最後,還是發到了測試環境發現有報錯,終于有點線索。

tinymce中使用media,視訊儲存到編輯區域時,會出現兩個video,點選空白會消失一個,再點選video又出現兩個

帶着試一下的心理把這些檔案都補上,發現居然可以了!!

tinymce中使用media,視訊儲存到編輯區域時,會出現兩個video,點選空白會消失一個,再點選video又出現兩個

2、解決方案

這裡說一下具體是怎麼解決的。看上面的報錯資訊可以知道,是有三個資源沒加載到,這裡采用手動添加對應的資源來曲線救國(實在不知道為啥會缺這些資源,可能是項目配置,也可能是tinymce的配置?),好在缺的東西不是很多,不用加太多,還能接受。

由于vue-cli會在打包之後把public下的資源都複制到dist檔案夾中,是以,我這裡直接在public中加了一個js檔案夾,打包時會合并到最終的dist/js下。具體要按照項目在伺服器上的部署路徑來放。

相應的資源其實可以看報錯的資訊,直接從node_modules中找到tinymce這個依賴,下面有skins檔案夾,把缺的東西複制到你加的js檔案夾就行了,然後重新run,問題解決。

tinymce中使用media,視訊儲存到編輯區域時,會出現兩個video,點選空白會消失一個,再點選video又出現兩個

3、總結

雖然最後解決了問題,但還是沒找到問題的根源在哪,按理說tinymce不會讓我們自己加一個js檔案的,skins拷貝到項目中我倒是在很多資料上看到過,但是跟這個沒關系。最後,有問題的地方歡迎指正!

繼續閱讀