Как закодировать данные изображения в файле HTML?

Я хотел бы смочь произвести файл HTML, который включает изображение (в самом файле). Путем поиска с помощью Google я столкнулся с несколькими способами сделать это:

  • javascript:imageData
  • данные URI такой как <IMG SRC="data:image/gif;base64,[...]">
  • <object ... > тег (хотя это использует данные URI, так может наследовать те же ограничения),

Но я не знаю, который лучше поддерживается браузерами, или если существуют другие альтернативы.

Может кто-либо с некоторым практическим опытом этого давать мне совет?Спасибо.

7
задан Richard Inglis 19 January 2010 в 09:06
поделиться

4 ответа

Что касается поддержки браузеров, из Википедии :

URI данных в настоящее время поддерживаются в следующих веб- браузеры:

  • Gecko и его производные, такие как Mozilla Firefox
  • Opera
  • KDE, через систему ввода / вывода KIO. Это позволяет браузеру KDE, Konqueror, поддерживать URI данных.
  • Safari; Хотя механизм рендеринга Safari, WebKit, является производным от механизма KHTML Konqueror, Mac OS X не использует архитектуру ведомых устройств KIO, поэтому реализации не используются совместно.
  • Safari для iPhone;
  • Google Chrome
  • Internet Explorer 8; Корпорация Майкрософт ограничила поддержку определенного содержимого, для которого нельзя переходить, например тегов и правил CSS, по соображениям безопасности, включая опасения, что JavaScript, встроенный в URI данных, может не интерпретироваться фильтрами сценариев, такими как те, которые используются в электронной почте в Интернете. клиентов. URI данных должны быть меньше 32 КБ.
  • TheWorld Browser; является браузером оболочки IE, который имеет встроенную поддержку схемы URI данных

IE неправильно обрабатывает тег , см. здесь для получения дополнительных сведений. Вкратце, вы не можете доверять IE для отображения изображений из него.

javascript: imageData также плохо поддерживается, так как он используется во многих атаках межсайтового скриптинга.

Есть много обсуждений этого в сети , и все они приходят к выводу, что не существует универсального универсального способа встраивания изображений.Если вам нужно поддерживать только подмножество браузеров, может работать uri данных или комбинация uri данных и javascript.

8
ответ дан 7 December 2019 в 01:21
поделиться

Схема URI данных хорошо поддерживается, за исключением Internet Explorer до версии 8.

JavaScript URI, я думаю, немного лучше поддерживаются, но не работают, если JS недоступен.

Лучшее, что вы можете сделать, это придерживаться внешних ресурсов изображений.

1
ответ дан 7 December 2019 в 01:21
поделиться

imageData более гибкий, например, некоторые ограничивают uris данных до 32k.

1
ответ дан 7 December 2019 в 01:21
поделиться

Данные URI не будут работать в

0
ответ дан 7 December 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: