Есть ли способ показать alt = "text" как всплывающую подсказку в Firefox, как это делает IE автоматически? - PullRequest
7 голосов
/ 14 ноября 2009

Я не хочу повторять альтернативный текст в заголовке снова? это возможно с любым решением JavaScript, JQuery, CSS? или любое решение, которое можно отключить, чтобы показать alt = текст и включить title = texr и в качестве всплывающей подсказки?

Ответы [ 6 ]

27 голосов
/ 14 ноября 2009

alt текст для альтернативного представления изображения. title текст для всплывающих подсказок.

В этом отношении поведение IE неверно , и Firefox никогда его не реализует. (Ошибка в базе данных Bugzilla # 25537 , которая является ПРОВЕРЕННОЙ WONTFIX.)

Не только это, но даже Microsoft признала, что их поведение некорректно , и IE 8 больше не отображает alt текст как всплывающие подсказки !.

Так что не полагайтесь на alt текст, отображаемый в виде всплывающей подсказки. Вместо этого используйте title.

19 голосов
/ 14 ноября 2009

Правильный способ сделать это - использовать атрибут title .

, например

<div title="This is your tooltip">...content...</div>

Атрибут «alt» предназначен только для предоставления «альтернативного» текста, когда используется элемент изображения (но недоступен пользователю ... например, слепым пользователям или пользователям с текстовыми браузерами и т.

4 голосов
/ 14 ноября 2009

Как говорит Скунлифф, правильный способ сделать это - в атрибуте title. Лучше соответствовать стандарту, чем полагаться на нестандартное поведение IE. Имейте в виду, что атрибут title предназначен для всплывающих подсказок для пользователей, которые могут видеть изображение, а текст для пользователей, которые не могут (хотя они также могут видеть заголовок). Если это действительно вас беспокоит, вы можете просто использовать javascript, чтобы установить атрибуты заголовка для атрибутов alt для всех ваших изображений, что даст вам кросс-браузерный эффект. : D

Примерно так:

 var images=document.getElementsByTagName("img");
 for (var item in images) {
     item.title = item.alt;
 }

ИЛИ (стиль W3 DOM)

 for (var item in images) {
     item.setAttribute("title", item.getAttribute("alt") );
 }

ИЛИ (jQuery)

 $("img").each( function() { this.attr("title", this.attr("alt") ); }

(еще не тестировал ни один из них, поэтому могут потребоваться небольшие изменения)

1 голос
/ 14 ноября 2009

Этот jQuery tooltip скрипт возьмет содержимое заголовка и отобразит его во всплывающей подсказке (включая форматирование HTML). Хотя это не исправляет ошибку IE, связанную с отображением текста alt, вы можете добавить скрипт для очистки атрибута alt после загрузки страницы; но, как было сказано ранее, это плохая идея, поскольку она не позволит читателям документов работать так, как задумано.

1 голос
/ 14 ноября 2009

Обратите внимание, что пользователь может подавлять всплывающие подсказки атрибута title в Firefox, установив для параметра расширенной конфигурации browser.chrome.toolbar_tips значение false.

0 голосов
/ 06 февраля 2016

Ответ Гордона был полезен, но причина, по которой jQuery не работал, заключается в том, что this должен быть объектом селектора jQuery, например:

jQuery("img").each( function(){ jQuery(this).attr("title",jQuery(this).attr("alt") ) });

Также не хватало ) для закрытия функции .each().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...