此问题与该主题的许多现有问题类似,但并不完全相同,包括 Tainted canvases may not be exported .
我正在编写一个仅离线应用程序,该应用程序必须保持这种状态并且无法使用本地网络服务器。有没有办法绕过 Canvas 上的 CORS 检查,以便将数据复制回基础图像。
<小时/>这是我正在尝试的代码示例:
var c1 = document.getElementById("tmp1");
var ctx1 = c1.getContext('2d');
var tmpImg1 = document.getElementById("tmpimg1");
ctx1.drawImage(img1, 0, 0, 150, 150);
tmpImg1.src = c1.toDataURL();
<小时/>
Chrome 的错误消息如下:
<小时/>Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.
在仅离线的情况下,有哪些可用选项仍具有相同的最终结果?
最佳答案
您可以将所有 img.src
指定为内联 Base64 编码的 URL。
img.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAA ..."
这样,所有的 imgs 都是您应用程序的本地镜像,并且 CORS 得到满足。
关于javascript - Chrome : Tainted canvases may not be exported; Offline-only app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275740/