3

在 IE7/8 中进行测试时,我的脚本崩溃并出现此错误...

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]-->

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

4

3 回答 3

10

包括 IE7/8 在内的许多旧浏览器不(完全)支持 HTML 5。

您可以使用Modernizr来检测当前浏览器是否支持音频。

有许多功能的polyfills,包括可以添加对缺失功能的支持的音频

https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

(向下滚动到音频部分以获取选项)

polyfills 适用于各种受支持的浏览器和浏览器版本。

于 2012-12-11T20:09:46.423 回答
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();
}

谢谢!

于 2014-01-02T17:12:40.220 回答
0

如果浏览器不支持 HTML5 音频,除了使用这些浏览器的替代品之外,您无能为力。根据 w3schools:

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

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

于 2012-12-11T20:08:09.377 回答