我在 html2canvas onrendered 事件中设置隐藏字段的值时遇到问题。
这是我的代码片段:
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 事件中的警报(数据)中,我看到数据是正确创建的,但它没有分配给隐藏字段(hid),并且“alert(jQuery('#hid').val())”向我展示了这一点我的hiddenField 未定义。我将非常感谢您的帮助!
最佳答案
我找到了解决方案。我认为 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'));
}
});
关于javascript - 在 html2canvas 事件中设置隐藏字段的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26460883/