Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.03.2014, 16:34
Аспирант
Отправить личное сообщение для dmivasant Посмотреть профиль Найти все сообщения от dmivasant
 
Регистрация: 17.07.2013
Сообщений: 47

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/
Кто знает как это сделать
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2014, 13:49
Аватар для kotamirov
Аспирант
Отправить личное сообщение для kotamirov Посмотреть профиль Найти все сообщения от kotamirov
 
Регистрация: 28.02.2014
Сообщений: 45

а что мешает просто прибавить расширение в название файла ?
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2014, 14:08
Аспирант
Отправить личное сообщение для dmivasant Посмотреть профиль Найти все сообщения от dmivasant
 
Регистрация: 17.07.2013
Сообщений: 47

Сообщение от kotamirov Посмотреть сообщение
а что мешает просто прибавить расширение в название файла ?
Не достаточные знания, я не понимая как прибавить расширения, что это и куда это писать.
Ответить с цитированием
  #4 (permalink)  
Старый 10.03.2014, 15:09
Аватар для kotamirov
Аспирант
Отправить личное сообщение для kotamirov Посмотреть профиль Найти все сообщения от kotamirov
 
Регистрация: 28.02.2014
Сообщений: 45

canvas.toDataURL("image/jpeg");// в формате jpeg
canvas.toDataURL("image/png");// в формате png

на 26 строчке у тебя замена идет, зачем если тебе PNG нужен)?

var img = canvas.toDataURL('image/png').replace("image/png", "image/octet-stream");
=>
var img = canvas.toDataURL('image/png');

Последний раз редактировалось kotamirov, 10.03.2014 в 15:12.
Ответить с цитированием
  #5 (permalink)  
Старый 10.03.2014, 15:16
Аспирант
Отправить личное сообщение для dmivasant Посмотреть профиль Найти все сообщения от dmivasant
 
Регистрация: 17.07.2013
Сообщений: 47

Сообщение от kotamirov Посмотреть сообщение
canvas.toDataURL("image/jpeg");// в формате jpeg
canvas.toDataURL("image/png");// в формате png

на 26 строчке у тебя замена идет, зачем если тебе PNG нужен)?

var img = canvas.toDataURL('image/png').replace("image/png", "image/octet-stream");
=>
var img = canvas.toDataURL('image/png');
без этой replace("image/png", "image/octet-stream") строчки просто изображения открываеться в новом окне, а надо чтоб сохронялось на комп.

Последний раз редактировалось dmivasant, 10.03.2014 в 15:19.
Ответить с цитированием
  #6 (permalink)  
Старый 10.03.2014, 21:58
Аватар для kotamirov
Аспирант
Отправить личное сообщение для kotamirov Посмотреть профиль Найти все сообщения от kotamirov
 
Регистрация: 28.02.2014
Сообщений: 45

на сервере прописать правила
header('Content-Disposition: attachment')// будет скачивать, а не открывать )
или
readfile("name_fille");
но replace("image/png", "image/octet-stream") надо убрать если png нужен!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Screenshot определенной части экрана средствами javascript dmivasant jQuery 22 29.09.2016 11:07
Screenshot определенной части экрана средствами javascript dmivasant Работа 11 18.03.2014 16:32
Screenshot определенной части экрана средствами javascript dmivasant Opera, Safari и др. 3 29.07.2013 09:07
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34