2013-03-21 70 views
0

我做的是上<img>標籤作爲觸發用的OnClick起着<audio> HTML頁面的元素..禁用時,在IE

的Javascript:

function changeImage() 
{ 
    element=document.getElementById('myimage') 
    if (element.src.match("play")) 
    { 
     element.src="stop.png"; 
     document.getElementById('audiotag1').src="music.mp3"; 
     document.getElementById('audiotag1').play(); 
    } 
    else 
    { 
     element.src="play.png"; 
     document.getElementById('audiotag1').src=""; 
    } 
} 

IMG標籤:
<img id="myimage" onclick="changeImage()" src="play.png" width="20" height="20" style="position:absolute;top:5px;left:5px;">

音頻標籤:
<audio loop id="audiotag1" src="music.mp3" preload="auto"></audio>

所以,這裏的問題,因爲IE8不支持<audio>標籤,我想使圖像消失,只在IE8或誰不支持<audio>標籤。可能嗎?我該怎麼辦? 我曾經使用禁用='禁用',但它不會工作。

回答

1

嘗試使用conditional comments - 即條件<!--[if lte IE 8]>

這會隱藏自己的形象不到和包括IE8(所以IE7,IE6等):

<!--[if lte IE 8]> 
#myimage { 
    display: none; 
} 
--> 

所以你爲它整個代碼會是這個樣子:

<!--[if IE 8]> 
    <style> 
    #myimage { 
     display: none; 
    } 
    </style> 
<![end if]--> 
+0

放哪裏?我把它放在''後面,但沒有任何作用 – HenryJahja 2013-03-21 10:36:12

+0

@HenryJahja它是CSS,所以把它放在你的CSS文件/代碼中。 – lifetimes 2013-03-21 10:36:50

+0

'<! - [if IE 8]> ' – HenryJahja 2013-03-21 10:38:44

0

什麼你需要的是Modernizr。你可以像支持任何東西一樣檢查支持。

此外,Modernizr包含html5shiv,如果您計劃使用html5支持oldie,則該html5shiv是必須的。

您可以檢查

if (Modernizr.audio) {} 

這是更好然後針對特定瀏覽器的檢查,因爲它會檢查HTML5音頻標籤的實際支持和基於瀏覽器不作假設(IE是不唯一過時的瀏覽器:D)

您也可以檢查實際的文件格式支持。從Modernizr的documentation的例子:

var audio = new Audio(); 
audio.src = Modernizr.audio.ogg ? 'background.ogg' : 
      Modernizr.audio.mp3 ? 'background.mp3' : 
            'background.m4a'; 
audio.play(); 

(雖然這是使用嵌套一個令人困惑的方式:運營商恕我直言)

-1

您可以通過JavaScript 檢查嘗試,如果你發現IE瀏覽器,然後return false

if(navigator.appName.indexOf("Internet Explorer") == -1) { 
    document.getElementById('myimage').onclick = function() { 
     return false; 
    } 
} else { 
    document.getElementById('myimage').onclick = function() { 
     alert("cliiing"); 
     return true; 
    } 
}