2013-04-25 21 views
7

我的Javascript實施出現問題。該腳本將在Firefox中運行,但在Chrome中它說:我在Chrome中遇到「Canvas has been tainted」錯誤,但未在FF

Unable to get image data from canvas because the canvas has been tainted by cross-origin data. index.html:1 
Uncaught Error: SecurityError: DOM Exception 18 

有沒有人有這種不一致行爲的原因是什麼?

+1

如果圖像來自與主頁面不同的域,則該畫布被視爲「污染」。您沒有發佈圖片網址,因此無法確切知道您發生了什麼。 – Pointy 2013-04-25 14:34:10

+2

謝謝Pointy。 URL只是本地文件名,因爲圖像文件與索引文件位於同一文件夾中。但奇怪的是,它在Firefox中沒有問題,但Chrome開始嘮叨。 – AndroidHustle 2013-04-25 14:42:40

回答

7

Chrome並不認爲不同的本地文件來自同一個域。也就是說,您通過file://網址引用的每個本地文件都被視爲來自與其他file://網址不同的唯一網域。他們在同一個目錄中沒有任何區別。

您可以使用一個選項(「--allow-file-access-from-files」我認爲)啓動Chrome,該選項告訴它將本地文件全部來自公共域。

+0

感謝您的輸入!我發現[這篇文章](http://stackoverflow.com/questions/9972049/cross-origin-data-in-html5-canvas)根據你寫的。我必須承認,雖然我不完全確定如何格式化URL(我不擅長這一點)。 我現在運行的URL:** file:/// C:/Users/Max/Dropbox/Web%20projekt/Shalette/index.html**。那麼如何調整呢?試圖把:http:// localhost // C:/Users/Max/Dropbox/Web%20projekt/Shalette/index.html只是在Chrome控制檯中啓動一些進程,而不是更多。任何信息,你可以給我非常感謝! – AndroidHustle 2013-04-25 15:17:08

+1

@AndroidHustle要麼必須使用'--allow-file-access-from-files'命令行標誌,要麼必須使用'http:'(或'https:' )方案。 – apsillers 2013-04-25 15:23:41

+0

@apsillers謝謝,我很抱歉,但我不得不問,這個命令行在哪裏?當我搜索它時,我沒有看到任何有關如何在Chrome中打開它的信息。另外,當我查看控制檯時,我沒有看到任何在Chrome中看起來像命令行的東西。 – AndroidHustle 2013-04-25 15:41:34

相關問題