Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

IE и Mozilla

Рисунок ниже отобразится в IE и Mozilla одинаково. Но вот в чём загвоздка: в IE он отобразится даже если выключены картинки, а Mozilla его загрузит прямо с HTML страницы, а не извне.

Почему так происходит? Для IE я вместо атрибута SRC применил аттрибут DYNSRC. Этот специальный атрибут, который понимает только IE, заставляет отображать браузер «динамическое» содержимое — фильмы, музыки и тд. Обрабатывается, он, похоже, так же как тег OBJECT — происходит внедрение ActiveX, который отвечает за показ содержимого. Поэтому картинка показывается и при отключенной графике — ведь IE отображает ActiveX, а уж что там показывает ActiveX браузера не касается.

Что касается Mozilla, то люди, которые устанавливают себе такой браузер вполне могут глянуть в код. Вкрадце: используется протокол data, который позволяет внедрять произвольные данные в HTML-код.




Дополнение:Оказывается, картика покажется не во всех IE, закономерность пока не установлена.

18 комментариев
РезиновыйЗапаЛ 2004

Этот подход использует IE в веб-архиве (mht-файлы), где все складируется в одном документе. Резиновый не программист, ошибся — не бейте!

MHz 2004

В моем IE6sp1 не показывается и не ругается на ActiveX (ActiveX отключен в настройках браузера)

Евгений Степанищев (bolknote.ru) 2004

Комментарий для MHz:

Хм. Наверное поэтому не показывается и ещё на некоторых браузерах

Thenin 2004

Opera, само собой, картинку не показывает. Разве что кокетливо намекает, что на этом месте она должна быть.

Евгений Степанищев (bolknote.ru) 2004

Комментарий для Thenin:

Ага.

Квинто 2004

Mozilla/Firebird/0.7 с отключёнными картинками взял, и показал изображение. IE6sp1, с отключенными картинками и ActiveX, как и у MHz, показывать ничего не стал.

Евгений Степанищев (bolknote.ru) 2004

Комментарий для Квинто:

Значит всё дело в ActiveX.

Mash 2004

Ещё пара наблюдений:

1) w2k3, ie 6.0.3790.0 — всё показывает, не ругается. Правда, для этого нужно включить «Play videos in web pages».

2) Mozilla dynsrc не покажет, да. И правильно сделает. «The dynsrc attribute is not a standard HTML or XHTML attribute. It is supported by Internet Explorer only.» SRC — без проблем.

3) Opera dynsrc тоже не покажет. SRC — почти без проблем: O721 (build 3218) [покажет только лоб; почему — надо копать; лень :)], O75p2 (build 3613), O75p4.

4) При сохранении страницы: IE — выдаёт ошибку; Opera, Mozilla — сохраняют, подставляя src=«somename.jpg» и не трогают dynsrc.

Раз уж речь зашла о multimedia: как там у нас дела с PNG? Касается ли браузера полупрозрачность? ;)

Евгений Степанищев (bolknote.ru) 2004

Комментарий для Mash:

В смысле как у нас с PNG?

Mash 2004

Небольшое уточнение.
Mozilla сохраняет так: <img dynsrc=«img/040412.jpg» src=«comments_files/a»>. Файл «a» без расширения.

Ramkin 2004

Опера 7.20 загрузила картинку только на половину

Евгений Степанищев (bolknote.ru) 2004

Комментарий для Ramkin:

Ага. Странная она.

Coolmax 2004

Opera 7.23,Сборка 3227, Windows 98 — Только лоб

Евгений Степанищев (bolknote.ru) 2004

Комментарий для Coolmax:

Пишите bug report в Opera :)

Alexander M. 2004

Надстройка к IE (MyIE2) с ВКЛюченными «Разрешить элементы ActiveX», «Разрешить аплеты Java», «Разрешить скрипты» и ОТКЛюченными «Загружать изображения, видео, аудио». Картинок не показала.

Евгений Степанищев (bolknote.ru) 2004

Комментарий для Alexander M.:

Видимо, дело в опции «загружать видео».

Alexander M. 2004

ВКЛючил «Загружать изображения» — картинку не увидел. Клик правой клавишей мышки -> «Показать рисунок». Тоже ни к чему не привел.

ё 2004

opera 7.50 Build 3658 (xpsp1) — всё пучком. картинка полностью.