![](/img/trans.png)
[英]Google Chrome, Same-Origin Policy killing Tampermonkey script
[英]Same origin policy, google chrome, canvas and file:// scheme
當嘗試從預先繪制圖像的畫布上讀取圖像數據時,谷歌瀏覽器引發了一個交叉起源異常(抱怨畫布被“污染”)。 目錄結構如下。
/html/base/path
|-- index.html contains the canvas element, references the script.js
|-- script.js loads imgs/images.jpg, paints and queries the canvas
`-- imgs/image.jpg
僅當頁面由file:// scheme加載時才會發生錯誤。
我想知道這是否是一個Chrome bug。 如果不是,哪些規則適用? 有沒有解決方法?
不幸的是,離線觀看是最終的用例,所以
使用file://
加載的file://
始終被視為來自不同的域,這是您無法繞過的功能。
如果以某種其他方式獲取文檔(例如,數據:用戶鍵入的URL,使用createDocument()API創建的文檔等)原點是在創建文檔時分配的全局唯一標識符。
您可以顯示但如果加載協議是file:
則無法分析或更改從另一個文件讀取的數據file:
。
在你的情況下我可能會做什么(如果我從你的評論中正確理解的話):我會寫一個小程序,可以在外部存儲介質中發布,這將啟動一個http服務器並啟動一個Web瀏覽器。 我會在Go(簡單地用兩行或三行制作一個http服務器,用於linux,Mac和Windows的原生編譯,使你能夠提供所有需要的可執行文件)中做到這一點,但也可以使用其他語言。
給他們指示他們用標志--allow-file-access-from-files
啟動chrome。
除此之外,他們需要運行本地服務器實例以避免錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.