Javascript 在html2canvas事件中将值设置为hiddenField

Javascript 在html2canvas事件中将值设置为hiddenField,javascript,jquery,grails,html2canvas,Javascript,Jquery,Grails,Html2canvas,我在html2canvas onrendered事件中将值设置为hiddentfield时遇到问题 以下是我的代码片段: js: html: 。。。 ... 我注意到onrendered事件之外的警报将作为第一个触发。此外,在onrendered事件中的alert(data)中,我看到数据是正确创建的,但它没有分配给hiddenField(hid),并且“alert(jQuery('#hid').val()”显示我的hiddenField未定义。我将非常感谢你的帮助 我找到了解决办法。我觉得j

我在html2canvas onrendered事件中将值设置为hiddentfield时遇到问题

以下是我的代码片段:

js:

html:

。。。
...

我注意到onrendered事件之外的警报将作为第一个触发。此外,在onrendered事件中的alert(data)中,我看到数据是正确创建的,但它没有分配给hiddenField(hid),并且“alert(jQuery('#hid').val()”显示我的hiddenField未定义。我将非常感谢你的帮助

我找到了解决办法。我觉得jQuery太慢了?纯js也很好:

html2canvas([document.getElementById('hidTest')],
{
    onrendered: function(canvas)
    {
        jQuery("input[name='hid']").val(canvas.toDataURL('image/png'));
    }
});
与此相反:

html2canvas([document.getElementById('hidTest')],
{
    onrendered: function(canvas)
    {
        data = canvas.toDataURL('image/png');
        jQuery("input[name='hid']").val(data);
    }
});
我用这个:

html2canvas([document.getElementById('hidTest')],
{
    onrendered: function(canvas)
    {
        var dataBind = document.getElementById('hid');
        data = canvas.toDataURL('image/png');
        dataBind.value = data;
    }
});
编辑 这有点奇怪,但像这样的东西也很管用:

html2canvas([document.getElementById('hidTest')],
{
    onrendered: function(canvas)
    {
        jQuery("input[name='hid']").val(canvas.toDataURL('image/png'));
    }
});
html2canvas([document.getElementById('hidTest')],
{
    onrendered: function(canvas)
    {
        jQuery("input[name='hid']").val(canvas.toDataURL('image/png'));
    }
});