0

我的 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 函数可以正常工作。

4

1 回答 1

0

问题是您saveCanvas在回发完成后调用,此时画布数据早已不复存在。

如果您有一个“保存”按钮,那么您需要在saveCanvas单击它时调用,以便在浏览器将页面发送回服务器之前保存数据:

<asp:Button runat="server" Text="Save" OnClickClick="saveCanvas()" />
于 2013-03-20T11:41:55.247 回答