Сделаем картинки показабельными!

Когда картинки выключены, браузер должен показывать их альты. Что делает Опера:

  • Если альт — нормальный текст, то вместо картинки она показывает этот текст
  • Если альт отсуствует, то вместо картинки показывается текст «Image»
  • Если альт есть, но пустой, то она не показывает ничего

Последнее логично (ведь пустой альт означает, что картинка используется только для оформления) и наверняка соответствует спецификации (смотреть лень). Но не всегда удобно. Проблема в том, что если картинка не отображается вообще никак, то нельзя на неё нажать правой кнопкой и выбрать Load image, то есть, картинки с пустыми альтами никак не отобразить, приходится включать отображение рисунков на странице. Ещё сейчас стало модно делать так, чтобы сайты проходили валидацию, поэтому все стали пихать пустые альты даже в те рисунки, которые имеют смысл, например, в заголовки меню (напомню, альт — обязательный атрибут тэга img).

Короче, решение проблемы выглядит так:

for (i in is = document.getElementsByTagName ('img'))
  if (is[i].src) if (is[i].getAttribute ('alt') == '')
    is[i].setAttribute ('alt', '#')

Закидываем это в папку пользовательских скриптов Оперы с расширением .user.js (важно!) и забываем про проблему навсегда. Я не очень большой специалист в DOM, может быть это же можно написать и короче/правильнее/оптимальнее, но это работает.

Подписаться на блог
Отправить
Дальше
3 комментария
Иван Бабанин 2005

Тебе прямо жуть-жуть осталось, всего 21 клик :)

Илья Бирман

Ага

Улитка 2005

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

Илья Бирман

%%
for (i in is = document.getElementsByTagName (’img’))
if (is[i].src) if (is[i].getAttribute (’title’) == ’’)
is[i].setAttribute (’title’, is[i].getAttribute (’alt’))
%%

Только зачем это?

Улитка 2005

Удобно. Там часто подписи к рисункам пишут, которые надо прочитать. Приходится отключать картинки, читать подпись, включать картинки.

Мои книги