Javascript canvas.toDataUrl()在新窗口中将图片发送到<img/>元素

时间:2012-03-18 16:38:07

标签: javascript canvas

我在这里做错了什么?

我试图通过打开一个新窗口并在一个img元素中显示.png来保存画布,该元素位于带有css的页面上。

从那里,您可以选择下载或分享。

到目前为止我有这个,但img src没有填充toDataUrl();

function saveDrawing() {
    var url = canvas.toDataURL(); 
    window.open('saveimage.php'); 
    var placeholder = document.getElementById("placeholder");  
    placeholder.src = url;  
}

有什么想法?谢谢!

1 个答案:

答案 0 :(得分:4)

document.getElementById("placeholder");不会在新打开的窗口中查找该ID,而是在当前窗口中查找。 您所要做的就是引用新创建的窗口文档:

function saveDrawing() {
    var url = canvas.toDataURL(); 
    w = window.open('saveimage.php'); 
    w.onload = function(){
        var placeholder = w.document.getElementById("placeholder");  
        placeholder.src = url;
    };  
}

这可能有错误,想法是你在w中存储对新窗口的引用,然后当它被加载时,访问它的DOM来修改图像src