getcontext('2d')失败主因是dom未就绪、canvas尺寸为0、重复获取不同上下文、小程序缺type="2d",或高dpi下未适配devicepixelratio。

Canvas 标签本身不绘图,必须通过 getContext() 获取上下文才能启用 2D 或 3D 能力;直接写 <canvas></canvas> 不会自动渲染任何内容。
为什么 getContext('2d') 失败或返回 null?
常见原因不是代码写错,而是 Canvas 元素未正确加载或上下文被重复获取:
- DOM 尚未就绪就调用
document.getElementById()—— 应放在DOMContentLoaded事件或<script></script>放在











