Screenshot определенной части экрана средствами javascript
Здравствуйте, уважаемые. Стоит такая задача: Превратить содержимое div-блока в картинку и предложить пользователю скачать её.
<!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style type="text/css"> div { width:200px; background-color: green; } </style> <script type="text/javascript" src="http://night-creature.com/html2canvas.js"></script> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> </head> <body> <div id="downimg"> <div> some text </div> </div> <script language="javascript"> function downimg(){ html2canvas($('#downimg'), { onrendered: function (canvas) { var img = canvas.toDataURL('image/png').replace("image/png", "image/octet-stream"); window.location.href = img; } }); } </script> <a href="javascript:void(0)" onClick="downimg()" >SAVE</a> </body> </html> такто работает, но сохраняет без расширения.Приходиться руками писать png? что не есть хорошо. Нашол решения на сайте http://updates.html5rocks.com/2011/0...he-client-side но по англиске не понимаю, да и вобще не понял что там к чему. Хотелось бы чтоб как у ни в демо http://eligrey.com/demos/FileSaver.js/ Кто знает как это сделать:help: |
Ух ты! Не знал что такое можно провернуть в Firefox.
Подключай либы FileSaver.js и canvas-toBlob.js. Когда нужно сохранить содержимое холста, вызывай: canvas.toBlob(function(blob) { saveAs(blob ,"blabla.png"); }, "image/png"); |
А причем тут jQuery?
|
Цитата:
|
Так прямо этот код и вставляй, без изменений
|
Цитата:
<!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style type="text/css"> div { width:200px; background-color: green; } </style> <script src="js/FileSaver.js"></script> <script src="js/canvas-toBlob.js"></script> <script type="text/javascript" src="http://night-creature.com/html2canvas.js"></script> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> </head> <body> <div id="downimg"> <div> some text </div> </div> <script language="javascript"> canvas.toBlob(function(blob) { saveAs(blob ,"blabla.png"); }, "image/png"); :help: </script> <form id="canvas-options"> <label> Filename: <input id="canvas-filename" class="filename" type="text" placeholder="doodle"/> .png </label> <input type="submit" value="Save"/> <input id="canvas-clear" type="button" value="Clear"/> </form> </body> </html> |
Ну вобще-то canvas с неба не свалится. Где у тебя тут вызов функции html2canvas? В коде выше у тебя все есть, а тут уже нету.
|
Цитата:
<!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <style type="text/css"> div { width:200px; background-color: green; } </style> <script src="js/FileSaver.js"></script> <script src="js/canvas-toBlob.js"></script> <script type="text/javascript" src="http://night-creature.com/html2canvas.js"></script> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> </head> <body> <div id="downimg"> <div> some text </div> </div> <script language="javascript"> function downimg(){ html2canvas($('#contener'), { onrendered: function (canvas) { var img = canvas.toDataURL('image/png').replace("image/png", "image/octet-stream"); window.location.href = img; } }); } canvas.toBlob(function(blob) { saveAs(blob ,"blabla.png"); }, "image/png"); </script> <form id="canvas-options"> <label> Filename: <input id="canvas-filename" class="filename" type="text" placeholder="doodle"/> .png </label> <input type="submit" value="Save"/> <input id="canvas-clear" type="button" value="Clear"/> </form> </body> </html> не работает:-E |
Цитата:
Куда вставить эту конструкцию, чтоб работала? canvas.toBlob(function(blob) { saveAs(blob ,"blabla.png"); }, "image/png"); |
Туда, где доступна переменная canvas, ясное же дело.
|
Часовой пояс GMT +3, время: 04:18. |