001-manual.html (1302B)
1 <?xml version="1.0" encoding="utf-8"?> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>Canvas drag and drop roundtrip</title> 5 <style type="text/css"> 6 img 7 {margin:0 2px;} 8 </style> 9 <script type="application/ecmascript"> 10 function addImage(event) 11 {var c = document.createElement('img'); 12 c.setAttribute('src',event.dataTransfer.getData('text/uri-list').replace(/\r\n$/,'')); 13 document.querySelector('p').appendChild(c);} 14 function start(event) 15 {event.dataTransfer.effectAllowed = 'copy'; 16 event.dataTransfer.setData('text/uri-list', document.querySelector('canvas').toDataURL('image/png'));} 17 </script> 18 </head> 19 <body> 20 <p> 21 <canvas width="100" height="100" draggable="true" ondragstart="start(event)" ondragenter="event.preventDefault()" ondragover="return false" ondrop="addImage(event)">Canvas</canvas> 22 </p> 23 <p>Drag canvas pattern outside browser window and then drag it back and drop on itself. It should be duplicated once you drop it.</p> 24 <script type="application/ecmascript"> 25 var canvas = document.querySelector('canvas'), 26 c = canvas.getContext('2d'); 27 for(var x = 0; x != 50; x++) 28 {c.fillStyle = (x%2 == 0)?'navy':'white'; 29 c.beginPath(); 30 c.moveTo(x,x); 31 c.lineTo(100-x,x); 32 c.lineTo(100-x,100-x); 33 c.lineTo(x,100-x); 34 c.closePath(); 35 c.fill();} 36 </script> 37 </body> 38 </html>