Подписаться на блог
В Твиттере

Реплики и ссылки на заметки

В Фейсбуке

Ссылки на заметки

Вконтакте

Ссылки на заметки

В Телеграме

Ссылки на заметки

В Тумблере

Заметки целиком

В Же-же

Заметки целиком

По РСС

Заметки целиком

Если что-то из этого не работает, напишите мне: ilyabirman@ilyabirman.ru.

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

Когда картинки выключены, браузер должен показывать их альты. Что делает Опера:
  • Если альт — нормальный текст, то вместо картинки она показывает этот текст
  • Если альт отсуствует, то вместо картинки показывается текст «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 комментария
Иван Бабанин
Тебе прямо жуть-жуть осталось, всего 21 клик :)
Илья Бирман
Ага
Улитка
Надо такую-же программку написать чтобы если у картинки пустой 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'))


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

Пользовательский интерфейс
Доступен первый раздел
электронного учебника

Популярное