Javascript IE在画布上调用toDataUrl时引发安全错误
首先,我知道当canvas的源图像来自另一个来源时,访问canvas的Javascript IE在画布上调用toDataUrl时引发安全错误,javascript,html,internet-explorer,canvas,svg,Javascript,Html,Internet Explorer,Canvas,Svg,首先,我知道当canvas的源图像来自另一个来源时,访问canvas的toDataURL方法是一个安全问题 但是在我的例子中,我使用数据:url作为我的img的源,然后使用img并在canvas上绘制它,然后调用canvas.toDataUrl 这在Chrome和Firefox上运行良好,但在IE中由于安全错误而失败 有什么想法吗 ... var svgxml = getxmlsvg(); img.onload = function(){ canvas.drawImage(this, 0
toDataURL
方法是一个安全问题
但是在我的例子中,我使用数据:
url作为我的img
的源,然后使用img
并在canvas
上绘制它,然后调用canvas.toDataUrl
这在Chrome和Firefox上运行良好,但在IE中由于安全错误而失败
有什么想法吗
...
var svgxml = getxmlsvg();
img.onload = function(){
canvas.drawImage(this, 0, 0);
canvas.toDataURL("image/png"); // <--- security error
}
image.src = URL.createObjectURL(new Blob([svgxml], {type: "image/svg+xml;charset=utf-8" }))
。。。
var svgxml=getxmlsvg();
img.onload=函数(){
drawImage(this,0,0);
canvas.toDataURL(“image/png”);//在我的例子中,我将构成图像的图形元素从svg更改为png。使用svg时,我在IE 11(和10)中看到了一个安全错误,而不是Chrome,当我使用toDataURL时。使用png元素构建图形,这很好
IE 11中svg的第二个问题是没有正确调整大小,因此这是另一个反对将svg与IE结合使用的问题。存在一个库,它抽象svg-->画布-->png,并向svg元素添加一个方法,以便在任何浏览器中都可以通过回调和选项“canvg”调用mySvg.toDataUrl()
此实现考虑了安全异常,因此您可以克服遇到的权限错误
<script type="text/javascript" src="http://canvg.github.io/canvg/rgbcolor.js"></script>
<script type="text/javascript" src="http://canvg.github.io/canvg/StackBlur.js"></script>
<script type="text/javascript" src="http://canvg.github.io/canvg/canvg.js"></script>
<script>
<script type="text/javascript" src="http://rawgit.com/sampumon/SVG.toDataURL/master/svg_todataurl.js"></script>
mySVGelement.toDataURL("image/png", {
renderer: "canvg"
callback: function(data) {
image.src = data;
}
});
</script>
听起来像是IE中的一个bug…这是什么版本的IE?我想是的,我正在使用IE 11。我记不清了,但似乎是因为在画布上绘制svg图像使其只能写!并阻止进一步的读取操作!!我已经更新了这个问题。IE具有令人生畏的隐私/安全级别,不一定符合其他要求er浏览器。尝试将它们降到最低,然后再研究它是否是一个错误IE@Bakhshi:你读了你找到的那份文件了吗?它似乎包含了你想要的答案:“SVG可能包含来自多个来源的内容,浏览器倾向于将MIME类型为image/SVG+xml的任何内容作为多来源内容列入黑名单,甚至不测试实际内容。[…]“在这段时间里,IE似乎仍然表现出这种行为耶,你是对的@Bergi。似乎将我的svg呈现为png的唯一选项是canvg
,这是我试图避免的。有解决方案吗?面临同样的问题,从svg获取数据uri png。与ie11不兼容。我在这里尝试过:
Browser E x p o r t i n g f o r m a t
SVG+XML PNG/canvg PNG/native
IE 9+ 9+ -
Chrome + + 33+ ²
Safari + + -
Firefox + + 11+ ¹
Opera + + -