javascript - 在 html2canvas 事件中设置隐藏字段的值

标签 javascript jquery grails html2canvas

我在 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/

相关文章:

asp.net - 从客户端java脚本调用asp.net中的服务器端事件处理程序

javascript - $.ajax 等待完成而不挂起 UI

javascript - jQuery 按时钟时间自动刷新页面

javascript - Knockout JS 将参数传递给函数

javascript - 多个 div 崩溃 : close one element if other is open (jQuery)

javascript - JQuery 附加到元素 - 更好的技术?

Javascript 定位在 Chrome 或 Safari 中不起作用

用于 Twitter : JTwitter, Twitter4J 或 Grails 插件的 Java/Grails 库?

grails test-app 输出到控制台

tomcat - 当我使用 run-app 但部署 .war 时,Grails 操作是安全的