Я так понял сначало можно было через canvas.
Потом нашли способ использовать canvas чтобы рисовать там изображение и отправлять его нехорошим людям.
Так что теперь можно только клонировать изображение с атрибутом src http://stackoverflow.com/questions/2042 … 5#27260385 но не в base64.
Методы toBlob(), toDataURL(), or getImageData() для canvas запретили: https://developer.mozilla.org/en-US/doc … bled_image
Доступ к указанным в форме отправки изображениям есть по прежнему.
Причем интересно при установке setAttribute('crossOrigin', 'anonymous'); функция toDataURL() просто тихо без предупреждений не срабатывает, если политика CORS на сервере не соответствует расположению картинки.
Текст по прежнему переводить можно: https://developer.mozilla.org/ru/docs/W … d_decoding
И даже вроде бы SVG.
Есть идеи как получить base64 картинки на чистом скрипте?
Добавлено 10-10-2016 14:56:35
Что интересно в описании функции toDataURL() не указано, что она теперь не работает с кросс доменными запросами: https://developer.mozilla.org/en-US/doc … /toDataURL
Добавлено 10-10-2016 15:09:09
Описание ошибки:
Отредактировано Dorian (10-10-2016 15:09:09)
Отсутствует
Может дополни пост насчёт того, работает или нет связка типа
img (src) > XMLHttpRequest (responseType = "blob") > FileReader (readAsDataURL)
Отредактировано Dumby (10-10-2016 21:59:37)
Отсутствует
В вопросе всё крутится вокруг кроссдоменных запросов. Если они создателями сайта, где находится картинка, запрещены, то считывание через XMLHttpRequest (хоть в blob, хоть куда угодно) возможно, только если страничка, содержащая этот XMLHttpRequest, находится в том же самом домене. Поэтому я почти аналогичную задачу (сохранение картинок с сайта на локальный диск) решал с помощью скрипта GreaseMonkey.
Отредактировано yup (10-10-2016 22:21:18)
Отсутствует
yup
Ага. Эт я хотел написать bookmarklet который все ресурсы страницы (js, css, img) включая такие как border-image: url()
конвертирует в base64 и заменяет ими оригинал. Хочу такой скрипт использовать, как альтернативу .mht формату.
Пока всё идет к тому, что придется писать дополнение на WebExtensions, там ограничение быть не должно.
Хотя способ Dumby ещё до конца не проработал.
Добавлено 10-10-2016 22:23:24
yup
GreaseMonkey не интересно, мне надо по нажатию: bookmarklet или дополнение.
Отредактировано Dorian (10-10-2016 22:23:24)
Отсутствует
GreaseMonkey не интересно, мне надо по нажатию: bookmarklet или дополнение.
Думаю, вместо GreaseMonkey можно использовать CustomButtons. Это мне, в силу специфики целевого сайта, нужен был автоматический запуск скачивающего скрипта.
(Кстати, мой скрипт только запускается автоматически, а дальше он рисует кнопку, нажатие на которую и запускает собственно "процесс" )
Отредактировано yup (10-10-2016 22:31:52)
Отсутствует
Dorian
Я когда-то делал такое: https://forum.mozilla-russia.org/viewto … 88#p588588. Самая серьёзная оставшаяся проблема - с js, получаем или риск двойной работы document.write и т.п. или неработающие обработчики на сохранённой странице (не увидим что там было под спойлером).
Отредактировано Lex1 (10-10-2016 22:54:45)
Отсутствует
try this https://github.com/benzBrake/FirefoxCus … c.js#L1064
Отредактировано brake (05-05-2022 04:29:34)
Отсутствует