我的aspx页面中有两个javascript函数。他们使用一些fabric.js函数。
function saveCanvas() {
js = JSON.stringify(canvas.toDatalessJSON());
$get('<%= txtJSON.ClientID%>').value = js;
}
function loadCanvas() {
js = $get('<%= txtJSON.ClientID%>').value;
canvas.clear();
canvas.loadFromDatalessJSON(js);
canvas.renderAll();
}
在代码隐藏中:
Protected Sub SaveJSON()
Dim scriptKey As String = "123"
Dim javaScript As String = "<script type='text/javascript'>saveCanvas();</script>"
ClientScript.RegisterStartupScript(Me.GetType(), scriptKey, javaScript)
End Sub
Protected Sub LoadJSON()
Dim scriptKey As String = "456"
Dim javaScript As String = "<script type='text/javascript'>loadCanvas();</script>"
ClientScript.RegisterStartupScript(Me.GetType(), scriptKey, javaScript)
End Sub
现在我的问题:为什么loadCanvas工作而saveCanvas不工作? txtJSON未填充JSON字符串。 从aspx页面调用saveCanvas函数可以正常工作。
答案 0 :(得分:0)
问题是你在回发完成后调用saveCanvas
,此时画布数据已经很久了。
如果您有一个“保存”按钮,则需要在单击时调用saveCanvas
,以便在浏览器将页面发布回服务器之前保存数据:
<asp:Button runat="server" Text="Save" OnClickClick="saveCanvas()" />