javascript - Download canvas image using JS Jquery -
i'm trying download canvas image desktop using following code:
<script type="text/javascript">     var canvas;     $(document).ready(function() {       if ($('#designs-wrapper').length) {         $('.design').each(function() {           var design = $(this).attr('data-design');           var canvas = $(this).find('canvas')[0];           var ctx = canvas.getcontext('2d');           var img = new image;           img.onload = function() {             ctx.drawimage(this, 0, 0);           };           img.src = design;         });       }        $('#canvas').click(function() {         this.href = canvas.todataurl();         this.download = 'design.png';       });      }); </script> sadly i'm getting following error:
uncaught typeerror: cannot read property 'todataurl' of undefined
does have idea how fix this?
live preview: http://dane.helpful.ninja/fds/index.php?username=z-justin
introductions: 1) click image 2) see dev console
edit:
after updating code following:
define canvas in global-scope remove var var canvas = $(this).find('canvas')[0];
the following error pops up:
uncaught securityerror: failed execute 'todataurl' on 'htmlcanvaselement': tainted canvases may not exported.
you can't use canvas variable call ready method method gets executed , scope of canvas variable gets ended. when call click callback, there not instance of canvas variable ended.
<script type="text/javascript">     var canvas;     $(document).ready(function() {       if ($('#designs-wrapper').length) {         $('.design').each(function() {           var design = $(this).attr('data-design');           var canvas = $(this).find('canvas')[0];           var ctx = canvas.getcontext('2d');           var img = new image;           img.onload = function() {             ctx.drawimage(this, 0, 0);           };           img.src = design;         });       }        $('#canvas').click(function() {         this.href = $('#canvas')[0].todataurl();// change here         this.download = 'design.png';       });      }); </script> 
Comments
Post a Comment