最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - HTML5 Canvas no method 'toDataURL' - Stack Overflow

programmeradmin3浏览0评论

My Code is like this

    <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> 

When i click on canvasImg its throwing an error

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

I have made a fiddle here Can any one point out whats going wrong?

My Code is like this

    <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> 

When i click on canvasImg its throwing an error

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

I have made a fiddle here Can any one point out whats going wrong?

Share Improve this question asked Nov 1, 2013 at 7:29 NoneNone 5,68023 gold badges93 silver badges178 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 5

DEMO

document.getElementsByTagName returns array of elements objects, and no array objects have method toDataUrl

instead of this

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

use

 var c = document.getElementsByTagName("canvas")[0];
    function myFunction() {
         var canvas = document.getElementById("myCanvas");
         var context = canvas.getContext("2d");
         var img = document.getElementById("canvasImg");
         context.drawImage(img, 0, 0);
    }
发布评论

评论列表(0)

  1. 暂无评论