我在html2canvas onrendered事件中为hiddentfield设置值时遇到问题。
以下是我的代码段:
JS:
function saveCanvas()
{
var data = null;
html2canvas([document.getElementById('hidTest')],
{
onrendered: function(canvas)
{
data = canvas.toDataURL('image/png');
alert(data);
jQuery("input[name='hid']").val(data);
alert(jQuery('#hid').val());
}
});
alert(data);
}
HTML:
...
<g:hiddenField name="hid"/>
...
我注意到,onrendered事件之外的警报将首先触发。同样在onrendered事件中的警报(数据)中,我看到数据是corectly创建的,但它并没有分配给hiddenField(hid)和&#34; alert(jQuery(&#39; #hid&#39; ).VAL())&#34;向我显示我的hiddenField未定义。我将非常感谢您的帮助!
答案 0 :(得分:1)
我找到解决方案。我觉得jQuery太慢了?纯js工作得很好:
而不是:
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'));
}
});