2010-05-28 67 views
0

所以我有這個PHP腳本,輸出有關的一些文件數據的HTML表格(如文件名,文件大小等)爲什麼是<img> ALT屬性並不總是正確顯示

我有這個JavaScript函數,當您懸停屬於「預覽」類的標記時,顯示圖片。例如,如果文件名爲:somePic.jpg,當您將somePic.jpg懸停在表中時,圖片將出現在鼠標旁邊。

現在不是所有這些文件都是圖片,有些是.mp3,所以當你將它們懸停時,javascript無法顯示圖片。 爲了處理這種情況,我在標籤(由javascript函數生成)中添加了一個alt屬性:alt ='預覽不可用於此類內容。'

這裏是我的問題,有時可行,但有時候不行! 有時您開始盤旋.mp3鏈接,並顯示alt屬性,然後將鼠標懸停在圖片上,顯示圖片,然後再次懸停.mp3,並且alt不再顯示,但「破碎的圖像」圖像(小紅十字)顯示,而不是...

當然,我可以解析文件名,並檢測它是一個MP3,然後處理的情況下,但我認爲alt屬性是想要實現這個...但它的越野車...

任何想法?有沒有人已經遇到過這個問題?

+2

可以顯示一些代碼?重現問題的HTML輸出? – Konerak 2010-05-28 12:36:03

回答

4

一般而言alt用於禁用圖像時,而不是作爲錯誤條件的逆止器。雖然IMO它是一個合乎需要的特徵是,替代文字在錯誤情況被顯示,該標準沒有說它具有:

對於無法顯示圖像,表單,或小應用程序的用戶代理,該屬性指定了替代文本。

事實上,瀏覽器的行爲也各不相同。 WebKit(Safari,Chrome)只會顯示一個破損的圖標圖標,而不會顯示替代文字; IE試圖在圖像圖標(經常顯示效果不佳)的框中呈現替代文本。

所以你不應該依賴ALT文本顯示錯誤。

當然,我可以解析的文件名和檢測時,它的一個MP3

是的,我想你會不得不這樣做。並不是說在一般情況下這是可能的,因爲文件名/ URL擴展可能與實際文件類型無關。但是,如果您自己控制所有網址,則可以保證所有MP3都被稱爲...mp3

1

如何讓PHP檢測文件類型並讓它僅在圖像上呈現JavaScript內聯。

您還應該查看FireBug並查看將鼠標懸停在圖像上時發生了什麼。

8

看起來好像你在混淆alt屬性和title屬性。

alt屬性是一個img -specific屬性,用於在圖像不能被分配的情況下分配替代內容。 title是一個通用屬性,用於在鼠標懸停在元素上時提供工具提示。

有些破碎的UA 咳嗽 IE 咳嗽治療alt作爲title上的圖像;很混亂的根源。

+0

「alt屬性是一個img特有的屬性,用於在圖像不能被分配的情況下分配替代內容。」 所以每次它不是圖片,應該渲染ALT,對吧?^_^ 這是我的情況,實際上它有時會起作用,但並不是所有的時間......我想這只是一種小車行爲... – Piero 2010-05-31 08:33:44