2016-10-31 69 views
4

我試圖使用dom-to-image插件。這是我的示例代碼。domToImage代碼拋出安全錯誤(DOM異常18)僅

www.avarachan.com/test.html

它適用於臺式機正常,但在iPhone上,它引發錯誤

安全錯誤DOM異常18

我嘗試以下htaccess的選項

Header set Access-Control-Allow-Credentials "true" 
Header set Access-Control-Allow-Origin "*" 
Header set Access-Control-Allow-Headers "origin, x-requested-with, content-type" 
Header set Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" 

錯誤依然存在。它似乎在android上使用chrome(我使用browserstack測試過)。只有iOS Chrome和Safari纔會拋出異常。即使只有div和文本。

有一個類似的圖書館,https://github.com/niklasvh/html2canvas,和它的作品上移動。但是這個圖書館並不像圖像那樣好。有人可以通過js和canvas知道iOS後面的工作方式,並且可能會提出一個解決方案,以在移動設備上進行dom-to-image工作。

+0

你有沒有得到這個解決?我們正在使用html2canvas庫遇到同樣的問題。 – jessica

+0

@jessica這個問題只與dom-to-image插件存在,因爲它使用svg和foreignobject節點。 html2canvas應該沒有這樣的問題。事實上,我最終回到html2canvas,一切都很好。 (必須爲我的具體情況做一些怪癖)。 – aVC

+0

也許它不是完全相同的問題,但是當試圖使用嵌入了SVG的html2canvas時,我們得到了DOM Exception 18錯誤。我們現在最終取出了SVG。無論如何感謝您的回覆! – jessica

回答

2

「DOM異常18通常意味着你超過了允許的設備(50MB)的配額,雖然在某些環境中,那是因爲蘋果移除的WebSQL支持(例如WKWebView)。」

來源:https://github.com/pouchdb/pouchdb/issues/4234

+0

我不確定是這種情況,因爲測試頁面有一些帶有文本的div。最大的幾kb。 – aVC

2

請確保您有

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src: 'self' 'unsafe-inline' 'unsafe-eval'">

,並儘量減少質量

+0

試過這個,其他幾個方法,最後拋出錯誤,它無法加載js – aVC