简体   繁体   English

如何在div中获取我的canvas元素值?

[英]How can I get my canvas element value with in the div?

I'm trying to get the context of myCanvas that is placed under the tag when i'm trying get the context value I'm getting an error saying that canvas not defined??? 当我尝试获取上下文值时,我试图获取放置在标签下的myCanvas的上下文。我收到一条错误消息,指出未定义的画布??? How can I resolve this issue??? 我该如何解决这个问题???

Thanks in advance. 提前致谢。 Here is my code: 这是我的代码:

HTML: HTML:

 < body >
 < div class ="div-left-column" id ="display" onload="make_base()" >
 < img id="scream" src="/home/openstack/harikrishna/html/tower.jpg" alt="The Scream"        width="50" height="50" >
 < img id ="gray" src ="/home/openstack/harikrishna/html/tower-gray.jpg" width = 50 height = 50/ >
 < canvas id="myCanvas" width="800" height="500" style="border:1px solid #d3d3d3;" />
 < input type ="button" id="clear" name ="clear" value ="clear" />
 < /div >
 < /body >

JS: JS:

   function GetElementInsideContainer(containerID, childID) {
      var elm = document.getElementById(childID);
      var parent = elm ? elm.parentNode : {};
      return (parent.id && parent.id === containerID) ? elm : {};
     }
    e = GetElementInsideContainer("display", "myCanvas");
 var canvas = e.id;
 var ctx = canvas.getContext("2d");
 var image = document.getElementById("scream");
 var clicks = 0;
 var lastClick = [0, 0];
 canvas.addEventListener("dblclick", getPosition, false);

function make_base(){
 var img  = new Image();
 var img2 = new Image();
 img.src = "/home/openstack/harikrishna/html/tower.jpg";
 img2.src = "/home/openstack/harikrishna/html/tower-gray.jpg";
 img.onload = function(){
   ctx.drawImage(img, 10,10,30,30);
   ctx.beginPath();
   ctx.moveTo(40,40);
   ctx.lineTo(80,250);
   ctx.stroke();
   ctx.drawImage(img, 80,250,30,30);
   ctx.beginPath();
   ctx.moveTo(110,250);
   ctx.lineTo(210,20);
   ctx.stroke();
   ctx.drawImage(img,180,20,30,30);
  }
 img2.onload = function(){
   ctx.drawImage(img2,250,200,30,30);
 }  
}

function getPosition(event)
{
   var x = event.x;
   var y = event.y;
   x -= canvas.offsetLeft;
   y -= canvas.offsetTop;
   //alert("x:" + x + " y:" + y);
   ctx.clearRect(250,200,30,30);
   ctx.drawImage(image,x,y,30,30);
}

 document.getElementById('clear').addEventListener('click', function() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
  }, false);

Change 更改

var canvas = document.getElementById(e.id);

See The Fiddle 参见小提琴

You mentioned only the id name not that DOM element. 您只提到了id名称,而不是那个DOM元素。

Try the fiddle 试试小提琴

Code: 码:

   e = GetElementInsideContainer("display", "myCanvas");
   console.log(e.id); //here geeting only id name
   var canvas = document.getElementById(e.id);
   console.log(canvas); //here geeting only DOM element
   var ctx = canvas.getContext("2d");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM