在IE7 / 8中测试时,我的脚本崩溃了,我收到了这个错误...
SCRIPT438:对象不支持属性或方法'play'
我正在使用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 :(得分:10)
包括IE7 / 8在内的许多旧版浏览器都没有(完全)支持HTML 5。
您可以使用Modernizr来检测当前浏览器是否支持音频。
许多功能都有polyfills,包括可以添加对缺失功能的支持的音频
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
(向下滚动到选项的音频部分)
polyfills适用于各种支持的浏览器和浏览器版本。
答案 1 :(得分:7)
我有一个类似的问题,这是我如何修复它(这现在在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();
}
谢谢!
答案 2 :(得分:0)
如果浏览器不支持HTML5音频,那么除了使用这些浏览器的替代品之外,您无能为力。根据w3schools:
Internet Explorer 8及更早版本,不支持 元件。