看來,我們有完全一樣的問題:
- 錯位文本
- 奇怪的ASCII-圖標代替文本在iPhone上
我不知道這已經是固定的目前我們的2.X版本與FabricJS 1.6.2一起工作,並且不能僅僅替換我們產品背後的主體框架,所以我不得不找出發生了什麼並找到了這個問題:
以下問題僅發生在Safari for MAC and iPhone
,所有其他瀏覽器均正常工作:
產品編輯器將預定義的複雜JSON文件加載到畫布中,然後初始化所有其他功能。
問題1:放錯了位置的文本
在我們的情況下,不是文本只是放錯了地方,其實同時再次導出畫布JSON時,在iText的對象的「寬度」得到了改變。
經過一番研究和實驗,我發現編輯模式下的character-width
被錯誤計算,這使得整個ITEXT-Object在加載後變大。
而這也是整個事情的原因:It seems that Safari loads, renders the web-fonts slightly different, which messed up the calculation for FABRICJS.
在我們的情況下,解決辦法很簡單:
- 我創建了檢查當前的函數瀏覽器。
- 然後,一個禁用字體預加載和Safari初始化的函數。
現在編輯器再次加載一切正常,只有目標字體丟失。
當所有被加載和初始化,只有一個AJAX的呼叫的字體報頭(預壓)和字體頁腳(初始化)在Safari再次追加。
它在最後一個canvas.renderAll();
發生輕微超時,我們的產品動機再次看起來不同(在不同的瀏覽器上)。
問題2:奇怪的ASCII-圖標
的MAC Safari瀏覽器沒有過這樣的問題,但在iPhone上出現了有時這些奇怪的ASCII碼圖標,如在你的截圖中。但在我的情況下,只有目標字體沒有完全加載,畫布纔會呈現。 (canvas.renderAll();
)
希望有所幫助,祝你好運!
請在iPhone上找到下面的問題URL。 https://www.awesomescreenshot.com/image/2585423/53dbaae3b74b7f965897c2f9d295001d –
https://www.awesomescreenshot.com/image/2585427/ce200b1c2d2fbdc088a053c5c84ad84d –