Учебник html2canvas?

Я хотел бы использовать html2canvas, но я понятия не имею, как это сделать.

Не обижайтесь на Герцена, он сделал отличный script, но документация неполная, поэтому она бесполезна.

Я посмотрел на JSFeedback, но весь script (который мне пришлось "украсть" из источника HTML) работает только с его версией html2canvas, которая, по его словам, не готова к открытой работе.

Любая помощь будет по-настоящему оценена - Apparatix.

Ответы

Ответ 1

html2canvas в основном принимает все объекты DOM, которые вы указали, - все дети, и их дети и т.д. - и реплицирует их в объекте Canvas (найденном в переменной холста, переданном функции) на основе их различных характеристик, включая границы, содержимое, стили и т.д. canvas.toDataURL() преобразует содержимое этого Canvas в поток символов, которые представляют изображение, которое может использоваться как src в теге, то есть

<img src=imgdataurl>

или установка фонового изображения через javascript/jquery, например:

$('#someDiv').css('background-image','url('+imgdataurl+')')

Если он не работает для вас, возможно, вы указываете неправильный родительский элемент DOM - вы можете попробовать $('body') вместо $('# myObj') и посмотреть, что-нибудь произойдет вверх.

Ответ 2

Дайте этому вихрь -

В вашем index.html добавьте следующие файлы javascript:

<script type="text/javascript" language="javascript" src="js/jquery.js">
</script>
 <script type="text/javascript" language="javascript" src="js/html2canvas.min.js">
</script>
<script type="text/javascript" language="javascript" src="js/jquery.plugin.html2canvas.js">
</script>

Вы можете загрузить последние два из: https://github.com/downloads/niklasvh/html2canvas/v0.34.zip

В вашем Javascript вы можете затем закодировать (замените #myObjectId на действительный селектор JQuery):

$('#myObjectID').html2canvas({
    onrendered : function(canvas) {
    var img = canvas.toDataURL();
    // img now contains an IMG URL, you can do various things with it, but most simply:
        $('<img>',{src:img}).appendTo($('body'));
            }
        });