所以我有这个php脚本输出一个html表,其中包含一些文件的数据(如文件名,文件大小等等)
我有这个javascript函数,当你悬停属于“预览”类的标签时显示图片。例如,如果文件名为:somePic.jpg,当您将somePic.jpg悬停在表格中时,图片将显示在鼠标旁边。
现在不是所有这些文件都是图片,有些是.mp3,所以当你悬停它们时,javascript无法显示图片。 为了处理这种情况,我添加了标签(由javascript函数生成),alt属性:alt ='预览不适用于此类内容。'
这是我的问题,有时它有效,但有时却不行! 有时你开始悬停.mp3链接,并显示alt属性,然后你悬停一张图片,显示图片,然后你再次悬停.mp3,并且不再显示alt,但是“破碎的图像”图像(显示小红十字)代替......
当然,我可以解析文件名并检测它何时是mp3,然后处理案例,但我认为alt属性是为了实现这一目标...但它有错误......
有什么想法吗?有没有人遇到过这个问题?
答案 0 :(得分:8)
您好像混淆了alt
属性和title
属性。
alt
属性是img
特定的属性,用于指定在图像不能呈现的情况下要呈现的替代内容。 title
是一个常规属性,用于在将鼠标悬停在元素上时提供工具提示。
一些损坏的UA 咳嗽 IE 咳嗽将alt
视为title
图像;是混乱的根源。
答案 1 :(得分:4)
通常alt
用于禁用图像,而不是作为错误条件的后备。虽然IMO是一个理想的功能,alt文本在错误条件下显示,标准并没有说它必须:
对于无法显示图像,表单或小程序的用户代理,此属性指定备用文本。
确实浏览器行为会有所不同。 WebKit(Safari,Chrome)只会显示损坏的图像图标,而不会显示alt文本; IE尝试使用图像图标(经常显示效果不佳)在框内渲染alt文本。
因此,您不应该依赖于错误时显示的替代文字。
当然,我可以解析文件名并检测它何时是mp3
是的,我认为你必须这样做。不是说在一般情况下这是可能的,因为文件名/ URL扩展可能与实际文件类型无关。但是,如果您自己控制所有URL,则可以保证所有MP3都被称为...mp3
。
答案 2 :(得分:1)
如何让PHP检测文件类型,让它只在图像上内嵌javascript。
您还应该查看FireBug并查看将鼠标悬停在图像上时发生的情况。