我试图解决下一个错误,但没有成功。
我有以下jQuery和HTML5代码:
<script language="javascript" type="text/javascript">
function doExportMap() {
map.once('postcompose', function(event) {
var canvas = event.context.canvas;
var exportBMPElement = document.createElement('a');
exportBMPElement.download = 'Mapa.bmp';
exportBMPElement.href = canvas.toDataURL('image/bmp');
document.body.appendChild(exportBMPElement);
exportBMPElement.click();
document.body.removeChild(exportBMPElement);
});
map.renderSync();
}
它的工作方式非常完美,但是现在,我收到以下错误:
SecurityError: The operation is insecure.
exportBMPElement.href = canvas.toDataURL('image/bmp');
怎么了?有任何想法吗?
有趣的是,我不是从外部来源加载图像。该图像来自本地主机
如果您可以在尝试导出画布之前发布用于修改画布的代码,则将很有帮助。根据您提供的信息,我想您是在将内容从外部来源写到画布上。这就是为什么它以前可以工作,而不再起作用。我假设您的初始测试使用了来自相同来源的资源。
画布上存在与从代码发出的任何数据请求相同的安全沙箱。每当您从其他域/来源加载内容时,都会触发画布将origin-clean
标志设置为false。这意味着浏览器将阻止您导出已加载到画布中的数据。在StackOverflow上有很多与此类型有关的帖子:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句