2012-12-11 54 views
3

工作在IE7/8我的脚本崩溃测试,我得到这个错误...HTML5音频不会在IE7或IE8

SCRIPT438:对象不支持属性或方法“玩”

我使用HTML5音频标签在我的网页上嵌入和播放音频。

<div id="auido-container"> 
     <audio id="music" loop="loop"> 
      <source src="audio/holiday-for-mr-anderson-60secs.mp3"></source> 
      <source src="audio/holiday-for-mr-anderson-60secs.ogg"></source> 
      Your browser isn't invited for super fun audio time. 
     </audio> 
     <audio id="sound"> 
      <source src="audio/pop.mp3"></source> 
      <source src="audio/pop.ogg"></source> 
      Your browser isn't invited for super fun audio time. 
     </audio> 

    </div> 

我的JS是这样的:

start.click(function(){ 
    audio.play(); 
}); 

我包括这在我的头:

<!--[if IE]> 
     <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
    <![endif]--> 

有谁知道任何解决方案或修复?

+0

在IE9中引入了对音频元素的支持。 – nnnnnn

+4

HTML5 Shiv只允许HTML5元素的样式;它不启用HTML5功能。 – apsillers

+0

“HTML5Shiv是由Sjoerd Visscher发现的JavaScript解决方法,用于在版本9之前的Internet Explorer版本中启用HTML5元素的样式,它不允许在未使用JavaScript的情况下对未知元素进行样式设置” – Ian

回答

0

如果浏览器不支持HTML5音频,除了使用这些浏览器的替代品外,没有太多可以做。根据w3schools:

Internet Explorer 8和更早版本,不支持 元素。

来源:http://www.w3schools.com/html/html5_audio.asp

6

我有一个类似的问题,这里是我如何解决它(现在在IE8中工作,并播放wav文件!)。诀窍是为兼容HTML5的浏览器使用音频标签,并为较老的IE浏览器嵌入标签。

在HTML页面中创建两个元素:

<audio id="audiotag" src="images/beep-03.wav" preload="auto"></audio> 
<embed id="audiotagII" src='images/beep-03.wav' autostart='false' loop='false' width='2' height='0'></embed> 

以下是在老年人以及新的浏览器播放声音JavaScript部分:

//Returns the version of Windows Internet Explorer or a -1. Available on the Internet! 
function getInternetExplorerVersion() 
{ 
    var rv = -1; // Return value assumes failure. 
    if (navigator.appName == 'Microsoft Internet Explorer') { 
     var ua = navigator.userAgent; 
     var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 
     if (re.exec(ua) != null) 
      rv = parseFloat(RegExp.$1); 
    } 
    return rv; 
} 

var browserVer = getInternetExplorerVersion(); 
if (browserVer > -1 && browserVer < 9) { 
    document.getElementById('audiotagII').play(); 
} else { 
    document.getElementById('audiotag').play(); 
} 

谢谢!