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

标签 javascript canvas

我在这里做错了什么?

我试图通过打开一个新窗口并在使用 css 定位在页面上的 img 元素中显示 .png 来保存 Canvas 绘图。

从那里您可以选择下载或共享它。

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

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

有什么想法吗?谢谢!

最佳答案

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

关于Javascript canvas.toDataUrl() 将图片发送到新窗口中的 <img> 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9760078/

相关文章:

android - 如何从绘制到位图中的文本中删除伪影

javascript - 按像素图像定义的蒙版剪辑或防止在该蒙版外绘制

javascript - 如何将 SVG 节点转换为 PNG 并将其下载给用户?

javascript - 最长正整数的子数组。编译器没有意义

javascript - 使用 jsTree XML 模块

Javascript 中的 HAML 中的 Javascript

javascript - 为什么第一次加载失败,但后续加载却可以?

javascript - 从对象动态创建元素

javascript - angular2中templatURL中的动态模板

canvas - paper.js - 直到拖动才设置 PointText 字体