2

我怎样才能解决这个问题?例如:


snd = new Audio("foo/bar.wav")

alert("abc") //in IE this line wont run??!

snd.play()
4

2 回答 2

2

如果您检测到功能(支持的类型),您的脚本将不会在其他不支持音频的浏览器(移动设备等)中引发错误。

你可以让它成为有条件的跨浏览器,即。

if (typeof window.Audio != 'undefined') { 
  /* var snd = new Audio("foo/bar.wav"); ... */ 
} 

或考虑使用Modernizr

于 2013-03-25T22:24:31.660 回答
0

IE8- 不支持该<audio>元素。请参阅http://caniuse.com/#feat=audio。如果你可以分离你的脚本,你可以这样做:

<!--[if lte IE 8]>
  <script>
    alert("Old IE.");
  </script>
<![endif]-->
<!--[if IE 9]>
  <script>
    snd = new Audio("foo/bar.wav");
    alert("IE9");
    snd.play()
  </script>
<![endif]-->
<!--[if !IE]> -->
  <script>
    snd = new Audio("foo/bar.wav");
    alert("Not IE (Or IE10+)");
    snd.play()
  </script>
<!-- <![endif]-->

IE10 完全放弃了条件注释,因此它将使用!IE脚本。

于 2013-03-25T18:19:19.653 回答