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 に答える