2014-10-20 36 views
0

我在將值設置爲html2canvas呈現事件中的hiddentfield時遇到問題。在html2canvas事件中將值設置爲hiddenField

這裏是我的代碼片段:

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事件外,警報將作爲第一火。在警報(數據)的異常事件中,我發現數據是真實地創建的,但它並沒有分配給hiddenField(hid),並且「alert(jQuery('#hid').val())」顯示了我我的hiddenField是未定義的。我將非常感謝您的幫助!

回答

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')); 
    } 
}); 
相關問題