Javascript 'this' 在加载 Page 时将画布传递给函数

Javascript 'this' to pass a canvas to function when Page is loaded

提问人:Shraddha 提问时间:10/15/2023 最后编辑:Shraddha 更新时间:10/15/2023 访问量:35

问:

我正在尝试将 HTML canvas 元素作为参数传递给函数,我认为使用“this”关键字会起作用,但我遇到了问题。有人可以协助我在页面加载时使用“this”关键字将 canvas 元素传递给“Move()”函数吗?

<div id="Container">
   <canvas id="Chart" class="Chart" width="400" height="400" onload="Move(this)"></canvas>
</div>

   function Move(element) {
   console.log(element);
   }

我想访问画布的 id,但我得到 null。我不想使用其他方法,如'getElementById'、'getElementsByClassName'或'getElementsByTagName',因为画布位于用户控件内部,并且在处理用户控件的多个实例时可能会有问题。

当使用 onload 属性加载页面时,如何将 HTML canvas 元素作为参数传递给 Move() 函数,以及如何在不使用其他方法的情况下访问画布的 id?

javascript html html5-canvas 用户控制 这个

评论

0赞 ggorlen 10/18/2023
我认为这需要更多的澄清。“画布位于用户控件内”究竟是什么意思?使用某种形式的 or 基本上是与文档元素交互的唯一方法,因此不想做正常的事情感觉就像一个潜在的 xy 问题,需要非常清楚地解释用例和应用程序上下文。getquery

答:

0赞 Syed M Sohaib 10/15/2023 #1

Canvas 没有函数,您可以在窗口 onload 上调用它onload

function move() {
  const canvas = document.getElementById("Chart");
  if (canvas.getContext) {
    const ctx = canvas.getContext("2d");
  }
}
window.addEventListener("load", move);

来源:https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Basic_usage

评论

0赞 Shraddha 10/15/2023
我不想使用其他方法,如'getElementById'、'getElementsByClassName'或'getElementsByTagName',因为画布位于用户控件内部,并且在处理用户控件的多个实例时可能会有问题。