我正在使用 javascript 绘制到包含在包装器中的 div 内的画布元素。画布及其 div 是通过添加到包装器的 innerHTML 来动态生成的。目标是允许生成无限数量的画布
<div id="wrapper">
<div id="container"><canvas id="previous"></canvas></div>
<!-- infinite # of container divs & canvases -->
</div>
但是,当我将新的 div 和画布添加到包装器的 innerHTML 时,绘制到前一个画布的任何内容都会丢失。
如果我在页面的其他地方添加新的画布,添加到容器外部的 div 或容器的子项:
<div id="wrapper">
<div id="container"><canvas id="previous"></canvas></div>
</div>
<div id="wrapper2">
<!-- newly inserted canvas: -->
<div id="container"><canvas></canvas></div>
</div>
或者:
<div id="wrapper">
<div id="container"><canvas id="previous"></canvas></div>
<div id="wrapperChild">
<!-- newly inserted canvas: -->
<div id="container"><canvas></canvas></div>
</div>
</div>
然后保留以前的画布。
据我所知,更改包装器的 innerHTML 或其父级会导致清除画布。关于如何避免清除画布的任何建议?我可以保留在其他地方绘制到画布上的内容并恢复它吗?