是否有任何脚本可以停止在IE 6和7中显示ALT =“text”作为工具提示?

时间:2009-11-15 15:29:34

标签: javascript jquery internet-explorer mootools

是否有任何脚本可以停止在IE 6和7中显示ALT =“text”作为工具提示?

8 个答案:

答案 0 :(得分:3)

我不会太担心它。 It's a known bug and it's fixed in IE8.

答案 1 :(得分:3)

$('img').each(function (i, el) {
  if (!el.hasAttribute('title')) {
    el.setAttribute('title', '');
  }
});

这应该使所有没有title属性的图像都为空。我不确定它是否能解决IE6和IE7的问题,但我认为它们支持title,这可能会覆盖它。

答案 2 :(得分:2)

<!--[if IE]><script>for(i =0;i<document.images.length;i++){document.images[i].alt='';}</script><![endif]-->
页面末尾的

应该这样做。

答案 3 :(得分:2)

在IE之前的IE浏览器中,唯一可以避免浏览器将图像显示为alt文本作为工具提示的方法是:

  1. 不使用alt属性(这不是一个好主意,因为它不是有效的HTML,即使对于无法看到图像的Google SEO和文本阅读器也不好。)

  2. 在每张图片中放置一个title=""空属性。

  3. 为了使用没有jQuery的简单Javascript来完成point(2),你必须在结束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属性设置为空字符串,除非在最后一种情况下已经定义了title属性我认为title属性是定义是因为你想在title属性中显示你所写的任何内容作为工具提示(这是一种跨浏览器的行为)。

答案 4 :(得分:1)

$$('img').set('alt', '');

除了设置标题属性外,别无他法。

答案 5 :(得分:0)

您可以执行以下操作,但它会非常具有侵入性(并且有点慢):

$('*').attr('alt', '');

答案 6 :(得分:0)

大概是alt属性,你只是指图像元素?

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

您也可以考虑从DOM中的元素中删除title属性

$('*').removeAttr('title');   

答案 7 :(得分:0)

screan读者运行javascript吗?如果没有那么为什么要打扰这个mod呢?

将alt设置为“”将隐藏IE中的alt“工具提示”&lt; 8这似乎就是你所追求的。此外,对于所有图像,无论如何都应该这样做,否则屏幕阅读器习惯于呈现默认的“图像占位符”语音。如果将其设置为空白,则不会打扰并跳过它,非常适合仅用于设计而非内容的图像。

不幸的是,没有特殊的标志或开关,您可以通过JS或任何其他方法轻弹,告诉IE在这方面的行为有任何不同,这是我相信你要求的。

另一种方法是将您在图像中找到的任何alts切换为标题,但这并没有摆脱工具提示,您只是最终使它们出现在所有浏览器中,而不仅仅是IE。

所以最后的解决方法是简单地清除图像中的所有alt属性(这里有其他答案中的脚本可以做到这一点)。你问过这个问题,但我认为你应该思考一下你想要达到的目标,更重要的是,为什么这是必要的呢?