Как я могу преобразовать элемент HTML в элемент холста?

Было бы невероятно полезно смочь временно преобразовать регулярный элемент в a canvas. Например, скажите, что у меня есть стилизованное div то, что я хочу зеркально отразить. Я хочу динамично создать холст, "представить" HTMLElement в холст скройте исходный элемент и анимируйте холст.

Это может быть сделано?

48
задан Hash 10 September 2017 в 08:15
поделиться

1 ответ

К сожалению, браузер не отображает HTML на холсте.

Это было бы потенциальной угрозой безопасности, если бы вы могли, поскольку HTML может включать контент (в частности, изображения и фреймы) со сторонних сайтов. Если холст мог превратить HTML-контент в изображение, а затем вы прочитали данные изображения, вы потенциально могли бы извлечь привилегированный контент с других сайтов.

Чтобы получить холст из HTML, вам придется написать собственное средство визуализации HTML с нуля, используя drawImage и fillText , что является потенциально огромной задачей. Здесь есть одна такая попытка , но она немного хитрая и далека от завершения. (Он даже пытается разобрать HTML / CSS с нуля, что я считаю безумием! Было бы проще начать с реального узла DOM с примененными стилями и прочитать стили, используя getComputedStyle и относительные позиции частей с помощью offsetTop и др.)

17
ответ дан 7 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: