能够临时将常规ol元素转换为画布将非常有用。例如,说我有一个样式的div,我想翻转。我想动态创建一个画布,“渲染”HTMLElement到画布,隐藏原始元素,并动画画布。
可以做吗?
解决方法
对不起,浏览器不会将HTML渲染到画布上。
如果可以,这将是一个潜在的安全风险,因为HTML可以包括来自第三方网站的内容(特别是图像和iframe)。如果canvas可以将HTML内容转换为图像,然后阅读图像数据,则可能会从其他网站提取特权内容。
要从HTML获取画布,您必须使用drawImage和fillText从头开始编写自己的HTML渲染器,这是一个潜在的巨大任务。有one such attempt here,但它有点诡异,并从完成很长的路。 (它甚至尝试从头开始解析HTML / CSS,我认为是疯狂的!从一个真正的DOM节点开始应用样式会更容易,并使用getComputedStyle和使用offsetTop的部分的相对位置读取样式et al。)