我已经定义了这个功能:
function viewCanvasImg() {
//("stage" is a kineticjs stage class object)
stage.toDataURL({
callback: function(dataUrl) {
document.getElementById('prova').src=dataUrl;
window.open(dataUrl);
}
});
}但当我按按钮叫它时,它就不起作用了。与形状和绘画,所有的工作很好,但在画布上的图像。
解决了问题,我注意到代码不只是在本地机器上工作,然后我把它放在我的then服务器上,一切都很好。
发布于 2013-09-12 22:45:00
查看本教程,看看它是否适合您:
http://www.html5canvastutorials.com/kineticjs/html5-canvas-stage-data-url-with-kineticjs/
你的代码看起来很正确。如果它不起作用,那么在调用window.open之前,您可能会得到一个Javascript错误。检查控制台,console.log是您的朋友。
而且,可能发生的情况是,在您的函数中没有定义stage。因此,您可能需要通过viewCanvasImg函数传递stage对象。
更新
对于图像和toDataURL,您必须要注意相同的原产地策略。
有关更多信息,请在这里阅读:Why does canvas.toDataURL() throw a security exception?
policy
这是KineticJS在控制台中抛出的错误:
动态警告:无法获得数据URL。试图突破用户代理的安全策略。
发布于 2014-07-17 15:13:28
我有一个类似的问题,当打开一个数据图像url在一个新的窗口,不显示在本地。
尝试右击>检查铬元素。
https://stackoverflow.com/questions/18774127
复制相似问题