2013-03-25 74 views
2

我该如何解决这个问题?例如:JavaScript/HTML - 新的音频JavaScript在IE 8及更低版本中失败?


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

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

snd.play() 
+0

可能重复的[HTML5音频不工作在ie7或ie8](http://stackoverflow.com/questions/13827637/html5-audio-not-working-in-ie7-or-ie8) – Ian 2013-03-25 18:20:41

+0

ik,但无论如何修复那条线? – 2013-03-25 18:22:40

+0

alert()会在IE中正常工作。 – Mooseman 2013-03-25 18:28:05

回答

2

如果您检测到feauture(支持的类型), 您的脚本不会在其他不支持音频的浏览器(手机等), 中发生错误。

你可以使它交叉浏览器条件即。

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

或考虑使用Modernizr

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脚本。

+0

是的,但我怎么才能让IE只忽略那一行呢? – 2013-03-25 18:20:08

+0

所以它不会卡在那条线 – 2013-03-25 18:20:25

+0

哪条线,控制台或音频? IE8也不会理解。 – j08691 2013-03-25 18:20:59