我已定义此功能:
function viewCanvasImg() {
//("stage" is a kineticjs stage class object)
stage.toDataURL({
callback: function(dataUrl) {
document.getElementById('prova').src=dataUrl;
window.open(dataUrl);
}
});
}
但是当我用按钮调用它时它不起作用。使用形状和绘制所有工作都很好,但画布上没有图像。
解决 我注意到代码只能在本地机器上运行,然后我放在我的网络服务器上,一切正常。
答案 0 :(得分:0)
检查教程,看看它是否适合你:
http://www.html5canvastutorials.com/kineticjs/html5-canvas-stage-data-url-with-kineticjs/
您的代码看起来很合适。如果它不起作用,您可能在调用window.open之前收到Javascript错误。检查控制台,console.log
是你的朋友。
此外,可能发生的事情是stage
未在您的函数中定义。因此,您可能需要通过viewCanvasImg
函数传递舞台对象。
<强>更新强>
使用图片和toDataURL
,您必须了解同源政策。
请在此处阅读以获取更多信息:Why does canvas.toDataURL() throw a security exception?
http://en.wikipedia.org/wiki/Same-origin_policy
这是KineticJS在控制台中抛出的错误:
动态警告:无法获取数据网址。试图突破用户代理的安全策略。
答案 1 :(得分:0)
我在新窗口中打开数据图像网址时遇到类似问题;不会显示在本地。
尝试右键单击&gt;在Chrome中检查元素。