我需要在页面刷新时记住我的画布

时间:2015-01-13 10:33:13

标签: javascript canvas drawing page-refresh

我有一个脚本可以在文件夹中上传文件,输入字段和画布。它的工作原理除了当我上传我的画布时,它会在创建文件夹之前上传它,因为它什么都没有。我已经解决了它需要在表单和所有图像提交后上传..但是这会导致页面刷新并重新设置我的画布绘图(到空白画布)。我需要一种方法来记住页面刷新时的画布。这是我的代码:

<?php if ($savescript == 1) { ?>
<script type="text/javascript">
    $(document).ready(function() {
        var myDrawing = document.getElementById("simple_sketch");
        var drawingString = myDrawing.toDataURL("image/jpg");
        var postData = "canvasData="+drawingString;
        var ajax = new XMLHttpRequest();
        ajax.open("POST",'saveimage.php',true);
        ajax.setRequestHeader('Content-Type', 'canvas/upload');
        ajax.onreadystatechange=function()
            {
                if (ajax.readyState == 4)
                {alert("image saved");}
            }
            ajax.send(postData);
    });
</script>
<?php }; ?>

$ savescript基于隐藏的输入字段,其值为1,因此它只会在提交表单后发送

**在此处插入标准HTML页面代码**

然后这是我的画布,它位于一个表格

<canvas id="simple_sketch" name="simple_sketch" width="800" height="300"></canvas>
    <script type="text/javascript">
      $(function() {
        $('#simple_sketch').sketch();
      });
    </script>

那么如何让画布记住页面重新加载之前绘制的内容?

需要哈尔普:p

1 个答案:

答案 0 :(得分:2)

页面是否需要刷新?如果您已经在进行ajax调用,则可能更容易使用preventDefault来停止刷新并让其余代码执行。然后,您将能够保留对画布对象的引用。