需要回调html2canvas函数

时间:2015-03-27 15:35:49

标签: javascript jquery ajax html2canvas

当我点击“保存”按钮时,我想首先使用html2canvas保存图像(有时需要1到3秒)完成后我需要回调来运行其他功能。

点击我的保存按钮也会重定向到另一个页面,并且在此功能中使用了这个json:

$('#save').click(function(event){
    event.preventDefault();
    if($('#slideshow li img').attr('src').indexOf('placehold.it') >= 0 && $('#slideshow').is(':visible')){
        alert('Please add a image to Slideshow or remove it to continue.');
    } else {
        html2canvas($('.bg'), {
            allowTaint:false,
            useCORS:true,
            logging:true,
            proxy:''+builderURL+'proxy.php',
        }).then(function(canvas) {
            var dataURL = canvas.toDataURL("image/png");
            $.post(''+builderURL+'thumb.php',{
                template_thumb: dataURL,
                template_id: TEMPLATE_ID
            });
        });
        // if i run functions from here, i lose html2canvas bec this takes 1-2secounds and my save function is redirecting on click
    }
    alert('if image is generated continue from here')
    $('#DataState, #DataTemplate').val('');
    createJSON();
    createHTMLJSON();
    createCSS();        
});

如果我像现在一样运行它,我会被重定向而没有图像。 在哪里添加回调?在html2canvas之后尝试并且没有。

1 个答案:

答案 0 :(得分:0)

我认为您必须调用异步请求。在JQuery中,您可以使用.ajax。 http://api.jquery.com/jquery.ajax/ 执行该函数后,将执行回调函数。