Comments 57
А как же быть с IE? Ведь вероятность появления ошибки (я про верстку в частности) в нем на много больше чем в других браузерах.
Ну это всего лишь мысли о возможности создания как таковых скриншотов таким образом :)
Сопутствующих проблем там много, начиная от того что JavaScript мог поломаться вообще весь и это не будет работать вообще, заканчивая тем что иногда даже в хроме скриншот не полностью соотвествует странице. Т.е. это все нужно допиливать.
Сопутствующих проблем там много, начиная от того что JavaScript мог поломаться вообще весь и это не будет работать вообще, заканчивая тем что иногда даже в хроме скриншот не полностью соотвествует странице. Т.е. это все нужно допиливать.
Ну вроде на сайте написано
Browser compatibility
The script should work fine on the following browsers:
Browser compatibility
The script should work fine on the following browsers:
- Firefox 3.5+
- Google Chrome
- Newer versions of Opera
- >=IE9 (Older versions compatible with the use of flashcanvas)
>=IE9 (Older versions compatible with the use of flashcanvas)
а как быть с <
а как быть с <
как бы тоже написано use flashcanvas
Ну вроде через flashcanvas можно, сам я не пробовал сейчас нету таких браузеров под рукой.
Закопать. Или FF
FIX: или FF < 3.5 вы тоже поддерживаете?
А людей исользующих ie<9 тоже закопать? я понимаю можно как то забить на 6 но на 7 и 8 еще немного рановато забивать
Ну все зависит от сферы применения, к примеру если пишется какая-нибудь интранет система для конкретной компании, то там обычно можно договорится о использовании только о новых браузерах. Причем заказчики в 99% случаев не против т.к. html5+css3 дают намного больше возможностей для красивостей и т.д.
А если это для интранет системы более-менее крупной компании, то там IE7-IE8 очень даже корпоративный стандарт :(
Корпоративный стандарт устанавливает компания. Если для работы юзерам надо держать последний фф — то они будут его держать. Им по большому счету все-равно, какой у них там браузер открыт, лишь бы работало.
Да и на практике если со стороны разработчика сам разработчик или просто грамотный менеджер, а стороны заказчика вменяемый человек, то всегда можно объяснить что лучше и почему. На моей памяти всякие «корпоративные стандарты IE 5.5+» прописывались ничего не понимающими менеджерами тупо по шаблону.
Пробовал эту библиотеку, но сделать совместимой ее с IE<9, так и не вышло(сохранять картинки), так как в flashcanvas не очень хорошо работает метод canvas.toDataURL. Но я думаю если повозиться, то можно было все-таки закостылить. Мне тогда повезло, заказчик согласился не делать функционал для IE<9.
А js-ный excanvas умеет toDataURL?
Не понял вашего вопроса, но если вы спрашиваете про стандартный объект canvas, то да, есть метод toDataURL. Вот здесь developer.mozilla.org/en/DOM/HTMLCanvasElement, можно почитать какие есть методы.
[sarcasm]Ой, спасибо! Как же я без вас нашёл бы MDN?[sarcasm]
Я про альтернативу flashcanvas: code.google.com/p/explorercanvas/
Я про альтернативу flashcanvas: code.google.com/p/explorercanvas/
Если посмотреть в пример разработчиков: html2canvas.hertzen.com/screenshots.html
То там будет ранняя версия этой штуки, там они пытаются использоваться flashcanvas.
Но судя по тому что в IE 8 оно не работает, нужно как минимум все допиливать.
То там будет ранняя версия этой штуки, там они пытаются использоваться flashcanvas.
Но судя по тому что в IE 8 оно не работает, нужно как минимум все допиливать.
Я же говорю не понял вашего вопроса.) Да рассматривал вариант code.google.com/p/explorercanvas/. Но он не имеет этого метода, он вообщем делает прорисовку используя объект VML, который я как понимаю нельзя сохранить в картинку.
Вот бы возможность сделать снимок экрана (пусть, с задержкой) любого окна на компьютере…
Вот эту конструкцию:
Это экономит время при наборе кода и даже при чтении, хотя, казалось бы, .ready() красноречивее.
$(document).ready(function(){
…
});
можно значительно упростить:$(function(){
…
});
Это экономит время при наборе кода и даже при чтении, хотя, казалось бы, .ready() красноречивее.
Да вы, батенька,
— во-первых, капитаните, поскольку любой человек, имевший дело с jquery, в курсе;
— во-вторых, ерничаете, поскольку конструкция нисколько не упрощается (тем более значительно);
— а в третьих, еще и неправы — ведь незнакомому с фреймворком человеку document.ready понятнее, чем какой-то значок доллара.
— во-первых, капитаните, поскольку любой человек, имевший дело с jquery, в курсе;
— во-вторых, ерничаете, поскольку конструкция нисколько не упрощается (тем более значительно);
— а в третьих, еще и неправы — ведь незнакомому с фреймворком человеку document.ready понятнее, чем какой-то значок доллара.
немного поучаствую в беседе:
1. раз автор так написал, значит не все знают и ваше высказывание неверно
2. лично я тоже так пишу и считаю что так короче и изящнее
3. ну тут спорить не о чем, да, это так, но лично я не вижу в этом проблемы (тем более можно написать комментарий для таких людей, это будет правильнее)
1. раз автор так написал, значит не все знают и ваше высказывание неверно
2. лично я тоже так пишу и считаю что так короче и изящнее
3. ну тут спорить не о чем, да, это так, но лично я не вижу в этом проблемы (тем более можно написать комментарий для таких людей, это будет правильнее)
Ммм, по первому пункту не соглашусь. Знать и использовать — все же разные вещи, правильно? :) Автор ниже отписался, что написание через .ready — сугубо дело привычки.
По второму — лично мне тоже удобнее написать $(function() {}), но называть такой вид «значительным упрощением» некорректно, что я и указал.
По второму — лично мне тоже удобнее написать $(function() {}), но называть такой вид «значительным упрощением» некорректно, что я и указал.
>> 3. ...(тем более можно написать комментарий для таких людей, это будет правильнее)…
Например такой? :)
// $(callback) = $(document).ready(callback)
$(function(){
…
});
Например такой? :)
// $(callback) = $(document).ready(callback)
$(function(){
…
});
На красивость и правильность кода я тут не претендую :)
Хотя как-то привык писать через .ready
Впрочем если быть совсем точным то и ".live('click'," тут совершенно ни к чему, можно через .bind
Хотя как-то привык писать через .ready
Впрочем если быть совсем точным то и ".live('click'," тут совершенно ни к чему, можно через .bind
Только нафига тут jQuery?
Выполняй невыполнимое, допускай недопустимое,
ROW ROW FIGHT DA POWAH!
ROW ROW FIGHT DA POWAH!
Как они это реализовали не пойму… Ребята мегамозги какие-то
Они используют очевидное решение в лоб: перебрать все элементы в DOM и отрисовать их на canvas.
Но ребята молодцы, безусловно, работы много проделано.
У меня в Опере не заработало, показывает белый экран вместо скриншота. Хотя идея хорошая.
Да, «замаркапить» страницу в последней опере не получилось, но линки работают http://markup.io/v/gqfyyfnrzxxq
Не забываем что наличие в на странице любой картинки с другого origin и без особого разрешения — просто выключит этот скрипт.
В общем нельзя сканы чужих документов себе на сервер слать.
В общем нельзя сканы чужих документов себе на сервер слать.
setTimeout("makeIT()", 1000)
Ну зачем передавать строку, скажите? ЗАЧЕМ?
setTimeout(makeIT, 1000)
Пару лет назад, была необходимость создавать скриншоты при сообщении о багах для одной довольно навороченной «интранеты». В итоге сошлись на использовании Java апплета с new Robot ();
Полная кроссбраузерность. Но для обычных сайтов этот метод не подойдёт. Мало кто из посетителей решится отправить снимок всего экрана (не только браузера) куда-то.
Полная кроссбраузерность. Но для обычных сайтов этот метод не подойдёт. Мало кто из посетителей решится отправить снимок всего экрана (не только браузера) куда-то.
а можно ли в html2canvas задавать координаты откуда делать скриншот?
Sign up to leave a comment.
Мысли о скриншотах через JavaScript