2009-02-22 12 views
0

我有兩個網站維護在一個頁面內使用HTML音頻/ MP3對象。他們用來工作,但之後有些事情破裂了。如果客戶端瀏覽器是IE,則頁面依賴於Windows Media Player。2009年1月微軟更新打破IE7中的MP3聲音對象

大約一個月前,該對象將顯示爲WMP控件。它應該看起來像this alt text http://calgarydj.ca/img/wmp.jpg

但現在看起來像一個郵件插槽附帶一個微小的滾動條。
點擊此link即可查看。 alt text http://calgarydj.ca/img/wmp2.jpg

我認爲這種變化可能已經2009年1月微軟更新發生。

我已經搜索了答案,但只發現了一個關於此問題的其他問題。我有 看到一些其他網站有相關的問題。這裏是another site,似乎有相同的問題 - 音頻示例見this page

  1. 有沒有人遇到過這個問題? IE7在Windows XP(2系統)
  2. 這是發生在Vista或只是XP(或者它只是我的2系統)?
  3. 有沒有修復?

下面是一個典型的聲音對象

<div class="music"> 
    <p>Pachelbel's Canon</p> 
    <object id="Cannon" type="audio/mpeg" data="./sound%20files/Pachebels%20Cannon.mp3" width="250" height="16"> 
    <param name="autoplay" value="false" /> 
    <param name="src" value="./sound files/Pachebels%20Cannon.mp3" /> 
    <object id="Cannon" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="250" height="50"> 
     <param name="autostart" value="false" /> 
     <param name="url" value="./sound%20files/Pachebels Cannon.mp3" /> 
     <param name="showcontrols" value="true" /> 

     <param name="volume" value="100" /> 
    </object> 
    </object> 
</div><!-- end of control --> 

這是一個很酷的網站的HTML。但是我已經試圖在這篇文章中添加圖片,圖片從未出現在最終文章中。我錯過了什麼?

回答

-1

我強烈建議使用Adobe Flash在網站上播放音樂。與使用Windows Media Player等外部播放器相比,它幾乎是無懈可擊的,您還可以完全控制播放器的外觀。

+0

那麼這種技術用於直到最近的工作,它只是現在在IE7中失敗。 IE7通常需要一個CLSID。我嵌套了2個對象,這樣如果第一個對象沒有被識別,瀏覽器就會在第二個對象中出現。 正確的編程會有第三次故障安全。 無論如何,你錯過了這一點。 – Diogenes 2009-02-22 16:36:37

0

所以我結束了使用IE條件註釋(唉!)來解決問題。這是醜陋的,但它的工作原理。它甚至驗證XHTML

仍然有2個嵌套對象,但現在IE條件註釋包裝器隱藏了第一個對象,所以IE沒有看到它,只有第二個。 Firefox,SafariChrome查看第一個對象並使用Quicktime插件(如果已安裝)呈現控件。

其他瀏覽器忽略IE條件註釋,因爲它們看起來像一個常規的打開/關閉註釋塊,中間有點亂碼。

注意:T 他在下面的註釋行周圍打勾(`)不屬於此處,但是您需要做的事情是讓事情在這裏工作。

`<!--[if !IE]>-->` 
    <object id="Cannon" type="audio/mpeg" data="./sound%20files/Pachebels%20Cannon.mp3" width="250" height="16"> 
    <param name="autoplay" value="false" /> 
    <param name="src" value="./sound files/Pachebels%20Cannon.mp3" /> 
`<!--<![endif]>-->` 
    <object id="Cannon" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="250" height="60"> 
     <param name="autostart" value="false" /> 
     <param name="url" value="./sound%20files/Pachebels Cannon.mp3" /> 
     <param name="showcontrols" value="true" /> 
     <param name="volume" value="100" /> 
`<!--[if !IE]>--></object><!--<![endif]-->` 
</object> 

不久前IE7使用,除非他們的Windows Media Player(WMP)一個合法的CLSID標籤忽略音頻/ MPEG類型的對象。由於第二個對象(在我之前的模型中)確實有一個CLSID,因此IE會呈現WMP控件,並且所有內容都只是簡單的。其他瀏覽器只會識別第一個對象,並使用Quicktime插件進行聲音控制。

2008年12月9日,微軟又發佈了Windows Media Player的安全更新。一切仍然像以前一樣工作(對我來說)。接下來是2009年1月13日的另一個更新,部分原因是要修補12月9日WMP更新。 (見this article)。這是當事情停止工作(在IE)。

現在,IE7(在XP上)將無類對象呈現爲具有滾動條的郵件插槽。它們與LCD屏幕上的郵件插槽一樣有用。 IE瀏覽器滿意它已經完成了它的工作,忽略了第二個嵌套了正確CLSID的對象。

因此IE自己的有條件的評論讓我從這裏泡菜,但這是微軟向自己的瀏覽器投擲扳手!爲何選擇微軟爲什麼?

相關問題