![](/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.