0

所以我有这个 php 脚本,它输出一个 html 表,其中包含一些文件的数据(如文件名、文件大小等......)

我有这个 javascript 函数,当您悬停属于“预览”类的标签时,它会显示图片。例如,如果文件名为:somePic.jpg,当您将 somePic.jpg 悬停在表格中时,图片将出现在您的鼠标旁边。

现在不是所有这些文件都是图片,有些是.mp3,所以当你将它们悬停时,javascript当然无法显示图片。为了处理这种情况,我在标记(由 javascript 函数生成)中添加了一个 alt 属性:alt='Preview not available for this type of content.'

这是我的问题,有时有效,但有时无效!有时您开始悬停.mp3链接,并显示alt属性,然后悬停图片,显示图片,然后再次悬停.mp3,alt不再显示,而是“损坏的图像”图像(小红叉)改为显示...

当然,我可以解析文件名并检测它何时是 mp3,然后处理这种情况,但我认为 alt 属性应该可以实现这一点......但它有问题......

任何的想法?有没有人已经面临这个问题?

4

3 回答 3

8

似乎您混淆了alt属性和title属性。

alt属性是一个img特定的属性,用于在图像无法呈现的情况下分配要呈现的替代内容。title是一个通用属性,用于在将鼠标悬停在元素上时提供工具提示。

一些损坏的 UA咳嗽IE咳嗽就像在图像上alt一样;title很多混乱的根源。

于 2010-05-28T12:38:58.283 回答
4

通常alt用于禁用图像时,而不是作为错误条件的支持。虽然 IMO 在错误条件下显示替代文本是一个理想的功能,但标准并没有说它必须:

对于无法显示图像、表单或小程序的用户代理,此属性指定替代文本。

确实浏览器的行为会有所不同。WebKit (Safari, Chrome) 只会显示损坏的图像图标,而不会显示 alt 文本;IE 尝试在带有图像图标的框内呈现 alt 文本(通常显示效果不佳)。

因此,您不应依赖在错误时显示替代文本。

当然我可以解析文件名并检测它何时是 mp3

是的,我认为你必须这样做。在一般情况下这也不可能,因为文件名/U​​RL 扩展名很可能与实际文件类型无关。但是,如果您自己控制所有 URL,则可以保证调用所有 MP3 ...mp3

于 2010-05-28T12:47:33.467 回答
1

如何让 PHP 检测文件类型并让它仅在图像上呈现 javascript 内联。

您还应该查看 FireBug 并查看将鼠标悬停在图像上时发生的情况。

于 2010-05-28T12:36:00.670 回答