【问题标题】:HTML5 Canvas no method 'toDataURL'HTML5 Canvas 没有方法“toDataURL”
【发布时间】:2013-11-01 07:29:37
【问题描述】:

我的代码是这样的

    <html>
  <head>
  </head>
  <body>
    <canvas id="myCanvas" width="578" height="200" style="display:none;"></canvas>
    <img id="canvasImg" onclick="myFunction()" alt="Right click to save me!">
    <script>
        var canvas = document.getElementById('myCanvas');
        var context = canvas.getContext('2d');
        function myFunction() {
            var c = document.getElementsByTagName("canvas");
            // save canvas image as data url (png format by default)
            var dataURL = c.toDataURL();
            // set canvasImg image src to dataURL
            // so it can be saved as an image
            document.getElementById('canvasImg').src = dataURL;
        }
    </script>
  </body>
</html> 

当我点击canvasImg 时,它会抛出一个错误

Uncaught TypeError: Object #<NodeList> has no method 'toDataURL' 

我做了一个fiddle here 谁能指出哪里出了问题?

【问题讨论】:

    标签: javascript html html5-canvas


    【解决方案1】:

    DEMO

    document.getElementsByTagName返回元素对象数组,没有数组对象有toDataUrl方法

    而不是这个

    var c = document.getElementsByTagName("canvas"); 
    

    使用

     var c = document.getElementsByTagName("canvas")[0];
    

    【讨论】:

      【解决方案2】:
          function myFunction() {
               var canvas = document.getElementById("myCanvas");
               var context = canvas.getContext("2d");
               var img = document.getElementById("canvasImg");
               context.drawImage(img, 0, 0);
          }
      

      【讨论】:

        猜你喜欢
        • 2014-11-26
        • 2015-09-25
        • 2013-09-19
        • 1970-01-01
        • 2015-09-20
        • 2012-08-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多