javascript - 访问没有 "getElementById"的 Canvas 元素

标签 javascript html html5-canvas

这个例子似乎是通常的“var myCanvas = document.getElementById("myCanvas");”生成正方形的代码不需要访问 Canvas 。

(从缩小的 Angular 来看)将其排除在外有什么缺点吗?

示例取自 here

在 chrome、IE 和 firefox 上测试

//var myCanvas = document.getElementById("myCanvas");
var canvasContext = myCanvas.getContext("2d");
canvasContext.fillRect(100, 100, 100, 100);
<canvas id="myCanvas" width="300" height="300">
Your user agent does not support the HTML5 Canvas element.
</canvas>

最佳答案

这是因为 id 导致 Canvas 被认为是“命名的 element”,一种在 HTML standards 中描述的行为。对于每个命名元素,浏览器在 document 对象上定义一个相应的全局属性,在本例中为 myCanvas。您可以类似地访问 document.myCanvas

除了使用 var 更加明确和令人困惑之外,这种行为在旧版本的 IE 上是不一致的。使用全局变量既不会更快也不会更优化,因此确实没有理由使用它。

要回答你的确切问题,从缩小的 Angular 来看应该没有问题

关于javascript - 访问没有 "getElementById"的 Canvas 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49907085/

相关文章:

css - IE9 CSS float :right Bug?

javascript - 扫描全能王应用程序如何自动检测任何纸张或任何卡片?我如何在 JavaScript 中实现相同的功能?

javascript - Canvas只保存部分图像并将其奇怪地拉伸(stretch)

html - 如何使用 css 发送 HTML 文件?

javascript - Fabric JS IText字体根据位置模糊

javascript - ng-repeat 在 Ionic 中不起作用

javascript - 如何在 Javascript 中使用 Perl 的时间戳?

javascript - 计算地理位置时无法设置外部(全局?)变量

javascript - 删除鼠标移开时的 Mapbox 折线

html - 在 WordPress 中更改表格的列