Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5音频在ie7或ie8中不工作_Javascript_Html_Internet Explorer - Fatal编程技术网

Javascript HTML5音频在ie7或ie8中不工作

Javascript HTML5音频在ie7或ie8中不工作,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,当在IE7/8中进行测试时,我的脚本崩溃了,我得到了这个错误 SCRIPT438:对象不支持属性或方法“播放” 我正在使用HTML5音频标签在我的网页上嵌入和播放音频 <div id="auido-container"> <audio id="music" loop="loop"> <source src="audio/holiday-for-mr-anderson-60secs.mp3"></source>

当在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>
我已在标题中包含以下内容:

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


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

如果浏览器不支持HTML5音频,那么除了使用这些浏览器的替代品之外,您没有什么可以做的。根据学校的说法:

Internet Explorer 8和早期版本不支持 元素


来源:

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

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

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

(向下滚动至音频部分以查看选项)


polyfills可以在各种受支持的浏览器和浏览器版本上使用。

我也遇到过类似的问题,下面是我如何修复它的(现在它可以在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();
}
//返回Windows Internet Explorer或-1的版本。可在互联网上获得!
函数getInternetExplorerVersion()
{
var rv=-1;//返回值假定失败。
如果(navigator.appName==“Microsoft Internet Explorer”){
var ua=navigator.userAgent;
var re=newregexp(“MSIE([0-9]{1,}[\.0-9]{0,})”;
如果(重新执行(ua)!=null)
rv=parseFloat(RegExp.$1);
}
返回rv;
}
var browserVer=getInternetExplorerVersion();
if(browserVer>-1&&browserVer<9){
document.getElementById('audiotagII').play();
}否则{
document.getElementById('audiotag').play();
}

谢谢大家!

IE9中引入了对音频元素的支持。HTML5 Shiv只允许HTML5元素的样式化;它不支持HTML5功能。“HTML5Shiv是一种JavaScript变通方法,由Sjoerd Visscher发现,用于在9版之前的Internet Explorer版本中启用HTML5元素的样式设置,不允许在没有JavaScript的情况下对未知元素进行样式设置”,IE7或IE8不支持该方法。你需要使用像flash这样的替代播放器
//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();
}