画布满足不起作用

时间:2013-07-23 02:23:00

标签: html image canvas html5-canvas contenteditable

我将画布创建为 contenteditable ='true',并将剪贴板中的图像粘贴到画布顶部。如下图所示,图像出现在画布旁边而不是画布顶部。尝试将画布转换为图像时,我得到空图像。这是因为我的画布不能保存我之前粘贴的图像。我如何获得图像?

HTML

<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" media="all" href="css/reset.css" /> <!-- reset css -->
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>

<style>
    body{ background-color: ivory; }
    canvas{border:1px solid red;}
</style>

<script>

  function convert()
  {
    var canvas=document.getElementById("canvas");
    var ctx=canvas.getContext("2d");
    //ctx.fillRect(50,50,150,75);
    var theImage=document.getElementById("toImage");
    theImage.src=canvas.toDataURL();
  }
</script>

</head>

<body>
    <canvas id="canvas" width=300 height=300 contenteditable='true'></canvas>
    <button type="button" onClick="convert()">Click</button>
    <img id="toImage" width=300 height=300>
</body>
</html>

图片 enter image description here

2 个答案:

答案 0 :(得分:1)

contenteditable属性用于与文本相关的HTML元素,对<canvas>元素不执行任何操作。

有关contenteditable的详细信息,请参阅MDN

答案 1 :(得分:1)

Canvas元素不是contexteditable属性的例外,canvas元素和其他元素之间的区别在于canvas标签内的文本只处理不支持canvas元素时显示的内容。根据定义,contexteditable处理元素标记内的文本,而不是您实际查找的canvas ctx上下文。如果您想在画布上查找绘图图像方法,可以找到演示on the w3Schools site