Canvas 动能JS:toDataURL()不';我不能处理图像
我已经定义了这个函数:Canvas 动能JS:toDataURL()不';我不能处理图像,canvas,html5-canvas,kineticjs,Canvas,Html5 Canvas,Kineticjs,我已经定义了这个函数: function viewCanvasImg() { //("stage" is a kineticjs stage class object) stage.toDataURL({ callback: function(dataUrl) { document.getElementById('prova').src=dataUrl; window.open(dataUrl);
function viewCanvasImg() {
//("stage" is a kineticjs stage class object)
stage.toDataURL({
callback: function(dataUrl) {
document.getElementById('prova').src=dataUrl;
window.open(dataUrl);
}
});
}
但当我按按钮叫它时,它就不起作用了。所有作品的形状和画法都很好,但画布上的图像则不然
已解决
我注意到代码不仅在本地机器上有效,然后我将其放在我的Web服务器上,一切正常。检查教程,看看它是否对您有效: 你的代码看起来很正确。如果它不起作用,在调用window.open之前,您可能会收到一个Javascript错误。检查控制台和
控制台。log
是您的朋友
此外,可能发生的情况是,阶段
未在函数中定义。因此,您可能需要通过viewCanvasImg
函数传递stage对象
更新
对于图像和toDataURL
,您必须注意同源策略
请阅读此处了解更多信息:
这是KineticJS在控制台中抛出的错误:
动态警告:无法获取数据URL。试图突破用户代理的安全策略
我在新窗口中打开数据图像url时遇到类似问题;不显示在本地屏幕上
尝试右键单击>检查Chrome中的元素 当我的画布仅包含绘图或形状时,该函数工作,但对于我的项目,我需要画布包含可拖放的图像,在这种情况下,我的函数不工作。该函数应该工作正常,但图像有一个例外。查看我的更新答案。我已解决。这些图像已经在我的页面的同一文件夹中。但我注意到代码并不是只在本地机器上工作,然后我把它放到我的Web服务器上,所有的工作都很好。