Есть ли сценарий, который может перестать показывать ALT = "текст" в качестве всплывающей подсказки в IE 6 и 7? - PullRequest
4 голосов
/ 15 ноября 2009

есть ли скрипт, который может перестать показывать ALT = "text" в качестве всплывающей подсказки в IE 6 и 7?

Ответы [ 8 ]

3 голосов
/ 15 ноября 2009
$('img').each(function (i, el) {
  if (!el.hasAttribute('title')) {
    el.setAttribute('title', '');
  }
});

Это должно дать всем изображениям без атрибута title пустое. Я не уверен, что это решит проблему для IE6 и IE7, но я думаю, что они поддерживают title, и это может переопределить это.

3 голосов
/ 15 ноября 2009

Я бы не слишком волновался об этом. Это известная ошибка, исправленная в IE8.

2 голосов
/ 16 октября 2010

В IE до IE8 единственным способом, позволяющим браузеру не показывать изображения и текст в виде всплывающей подсказки, являются:

  1. не использовать атрибут alt (что не очень хорошая идея, потому что это недопустимый HTML и он не годится даже для Google SEO и программ для чтения текста, которые не могут видеть ваши изображения).

  2. поместите на каждом изображении title="" пустой атрибут.

Чтобы выполнить пункт (2), используя простой Javascript без jQuery, вы должны поместить этот маленький кусочек кода перед окончанием тега BODY, например:

   <!--[if lt IE 8]>
      <script>
         for(var i = 0, imgs = document.images, len = imgs.length; i < len; ++i)
            if(!imgs[i].title)
               imgs[i].title = "";
      </script>
   <![endif]-->            
</body>

Вы можете написать это в одну строку, если хотите.

Преимущество этого кода состоит в том, что он не портит атрибуты тега alt ваших изображений, он просто устанавливает атрибут заголовка в пустую строку, если только атрибут заголовка уже не определен в этом последнем случае, я предполагаю, что атрибут заголовка был определено потому, что вы хотите показать все, что вы написали в атрибуте title, как всплывающую подсказку (это поведение в разных браузерах).

2 голосов
/ 15 ноября 2009
<!--[if IE]><script>for(i =0;i<document.images.length;i++){document.images[i].alt='';}</script><![endif]-->

в конце страницы должен это сделать.

1 голос
/ 15 ноября 2009
$$('img').set('alt', '');

Другого пути нет, кроме установки атрибута title .

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

Screan Reader запускает JavaScript? Если нет, то зачем использовать этот мод?

Установка alt на "" скрыла бы alt "подсказку" в IE <8, что, кажется, все, что вам нужно. Плюс это должно быть сделано в любом случае для всех изображений, иначе программы чтения с экрана имеют привычку рендеринга речи «заполнитель изображения» по умолчанию. Если вы установите его пустым, он не будет беспокоить и пропустит его, что идеально подходит для изображений, которые просто используются для дизайна, а не для контента. </p>

К сожалению, нет специального флага или переключателя, который вы можете щелкнуть с помощью JS или любого другого метода, чтобы сказать IE, чтобы он вел себя по-другому в этом отношении, что, как я полагаю, вы запрашиваете.

Альтернативой является переключение любых альтов, которые вы найдете на изображениях, в заголовки, но это не избавляет от всплывающих подсказок, вы просто в итоге заставляете их появляться во всех браузерах, а не только в IE.

Итак, последнее исправление - просто очистить все атрибуты alt в изображениях (и здесь есть сценарии в других ответах, которые делают именно это). Вы задали вопрос, но я думаю, вам следует задуматься о том, чего вы пытаетесь достичь, и, что более важно, почему и так ли это важно?

0 голосов
/ 15 ноября 2009

Предположительно для атрибута alt, вы просто имеете в виду элементы изображения?

$('img').removeAttr('alt');

Вы можете также рассмотреть возможность удаления атрибута title из элементов в DOM

$('*').removeAttr('title');   
0 голосов
/ 15 ноября 2009

Вы можете сделать следующее, но это будет очень навязчиво (и немного медленно):

$('*').attr('alt', '');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...