2010-09-23 110 views
0
alt属性

可能重复:
Alt attribute encoding with JavaScript的javascript:有特殊字符

我似乎无法在指定alt标签使用javascript特殊字符,并让他们在任何浏览器渲染。

没有JavaScript,在alt标签的特殊字符渲染精细(百事可乐™):

<img id="pic" src="path/to/image.jpg" alt="Pepsi&trade;" />

然而,通过指定JavaScript或jQuery的你得到这个相同的值时(可乐&trade;)。

$("#pic").attr("alt","Coke&trade;")image = document.getElementById('pic'); image.alt="Pepsi&trade;"

在Chrome和IE6存在这个问题;我没有尝试过其他浏览器。有任何想法吗?

回答

2

首先,你应该把该文本在“标题”属性,而不是“ALT”。 “alt”属性应该包含图片无法显示时显示的文本。 “标题”属性提供了渲染代理可以使用的解释性文本,并且飞越式文本就是其中的主要示例。使用你的例子,“alt”属性可能是“百事可乐的标志”,而“标题”将是花哨的价值。 (在这种情况下,没有太大的区别,但重点在于这两个属性在目的上确实有很大不同。)

如果您需要通过Javascript获取这些特殊字符,则必须使用Javascript提供Unicode值像\uNNNN那样转义,其中“NNNN”是十六进制数字。例如,我认为商标符号应该是"\u00AE"作为Javascript字符串。

+0

确实。这仅仅是为了说明的目的,真正的替代文字是适当的。 – Kevin 2010-09-23 14:19:16

+0

其次,谢谢。那就是我正在寻找的东西。 – Kevin 2010-09-23 14:20:55

0

尝试 -

$( “#PIC”)ATTR( “ALT”, “焦\ u2122”)。