在IE中禁用元素

时间:2013-03-21 10:18:51

标签: javascript image html5 audio

我正在制作一个播放<audio>的HTML页面,其中<img>标签上有OnClick作为触发器。

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>标签的人身上消失。可能吗?我该怎么办? 我曾经被禁用='禁用',但它不会工作。

3 个答案:

答案 0 :(得分: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]-->

答案 1 :(得分:0)

您需要的是Modernizr。你可以检查支持。

如果你打算用html5支持oldie,那么Modernizr还包括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();

(虽然这是使用嵌套?:运算符恕我直言的令人困惑的方式)

答案 2 :(得分:-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;
    }
}