Почему атрибут <img> alt не всегда отображается правильно
Итак, у меня есть этот скрипт php, который выводит HTML-таблицу с данными о некоторых файлах (таких как имя файла, размер файла и т. Д.)
У меня есть эта функция JavaScript, которая отображает картинку, когда вы наводите тег, принадлежащий к классу "Предварительный просмотр". Например, если имя файла: somePic.jpg, при наведении курсора на таблицу somePic.jpg рядом с мышью появится изображение.
Теперь не все эти файлы являются изображениями, некоторые из них являются.mp3, поэтому, конечно, когда вы наводите на них курсор, JavaScript не может отображать изображение. Чтобы справиться с этим делом, я добавил в тег (сгенерированный функцией javascript) атрибут alt: alt='Предварительный просмотр недоступен для этого типа контента.'
И вот моя проблема, иногда это работает, но иногда это не так! Иногда вы начинаете зависать.mp3 ссылки, и отображается атрибут alt, затем вы наводите на него картинку, картинка отображается, затем вы снова наводите курсор на.mp3, и alt больше не отображается, но изображение "испорченное изображение" (маленький красный крест) отображается вместо...
Конечно, я мог разобрать имена файлов и определить, когда это mp3, а затем разобраться с делом, но я думал, что атрибут alt должен был достичь этого... но он глючит...
Любая идея? Кто-нибудь уже сталкивался с этой проблемой?
3 ответа
В общем alt
для случаев, когда изображения отключены, а не в качестве защиты от ошибок. Хотя IMO является желательной функцией, чтобы альтернативный текст отображался в условиях ошибки, стандарт не говорит, что он должен:
Для пользовательских агентов, которые не могут отображать изображения, формы или апплеты, этот атрибут определяет альтернативный текст.
и действительно, поведение браузера меняется. WebKit (Safari, Chrome) будет отображать только значок с разбитым изображением, а не альтернативный текст; IE пытается визуализировать альтернативный текст внутри поля со значком изображения (который часто отображается плохо).
Поэтому не стоит полагаться на то, что альтернативный текст отображается при ошибке.
Конечно, я могу разобрать имена файлов и определить, когда это mp3
Да, я думаю, тебе придется. Это не возможно в общем случае, так как расширение имени файла /URL может не иметь ничего общего с реальным типом файла. Однако, если вы сами контролируете все URL-адреса, вы можете гарантировать, что все MP3-файлы называются ...mp3
,
Кажется, что вы путаете alt
атрибут и title
приписывать.
alt
атрибут является img
-специфичный атрибут для назначения альтернативного контента, который будет отображаться в случае, если изображение не может быть. title
является общим атрибутом, используемым для предоставления всплывающей подсказки при наведении на элемент.
Некоторые сломанные UA кашель IEкашель alt
как title
на изображениях; корень большого замешательства.
Как насчет того, чтобы позволить PHP определять тип файла и позволить ему отображать встроенный JavaScript только на изображениях.
Вы также должны проверить FireBug и посмотреть, что происходит, когда вы наводите курсор на изображения.