音频不一致 - 非常令人费解

时间:2011-12-25 03:49:47

标签: jquery html css html5 audio

所以,我有一个网站,它使用jquery和html 5来模拟flash网站。

当您将鼠标悬停在菜单项上或打开不同的菜单时,音频设置为播放 - 它在IE 9中工作正常(8或更低版本不支持音频)和Chrome但不是FF。

现在这里有一个令人费解的部分:它在我的桌面或我的测试服务器上的FF也可以正常工作,而不是在它需要处理的服务器上。

有人知道这里会发生什么吗?

网站为here供参考。在IE9或Chrome中查看它,然后在FF中查看我的意思。您可以将here用于我的测试服务器,它可以在任何地方运行。文件完全相同。

修改

根据要求,这是我设置内容的方式(完整代码可通过以下链接和点击查看源获得)

<audio id="open2" preload="auto"><source src="support/media/open2.mp3"></source><source src="support/media/open2.ogg"></source></audio>

稍后...我将以下代码添加到一个元素,最后一个类是一个与音频元素的id相对应的整数..不要挂在那个东西上,因为它显然可以在其他浏览器中工作。我也做了一些浏览器检测,因为尝试播放音频会在IE 8及以下的版本中破坏页面。

document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play();

1 个答案:

答案 0 :(得分:0)

sdo,你的文件不一样。我从您的网站(休息室)和您的测试网站(blueclick.ca)获取了来源并进行了比较。虽然有很多HTML差异,但我觉得以下JS逻辑是你的问题。正如您所看到的,代码是不同的。可能是正确的代码不是他们在您的网站上造成的问题。也可能是您的服务器正在提供页面的缓存版本。检查这些可能有所帮助。

您工作现场的代码:

$("#navigation li").click(function() {

        if (!currOpen){
            if (!(BrowserDetect.browser == "Explorer" && BrowserDetect.version < 9))
                document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play();    
                customToggle($(this));
                currOpen = getId($(this));
        } else if (getId($(this)) == currOpen) {
                $("#"+currOpen).slideToggle('slow');
                currOpen = 0;
        } else {
                $("#"+currOpen).slideToggle('slow');
            if (!(BrowserDetect.browser == "Explorer" && BrowserDetect.version < 9))
                document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play();    
                customToggle($(this));
                currOpen = getId($(this));
        }

        function customToggle(obj){
            $("#"+getId(obj)).slideToggle('slow');
        }

        function getId(obj){ return obj.attr('id').substr(4) }

    });

您工作地点的代码:

$("#navigation li").click(function() {

        if (!currOpen){
                if (BrowserDetect.browser == "Explorer" && BrowserDetect.version < 9){
                 // do something else 
            } else {
                document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play();
            }               document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play();    
                customToggle($(this));
                currOpen = getId($(this));
        } else if (getId($(this)) == currOpen) {
                $("#"+currOpen).slideToggle('slow');
                currOpen = 0;
        } else {
                $("#"+currOpen).slideToggle('slow');
            if (BrowserDetect.browser == "Explorer" && BrowserDetect.version < 9){
                 // do something else 
            } else {
                document.getElementById('open'+$(this).attr('class').substr($(this).attr('class').length-1)).play();
            }
                customToggle($(this));
                currOpen = getId($(this));
        }

        function customToggle(obj){
            $("#"+getId(obj)).slideToggle('slow');
        }

        function getId(obj){ return obj.attr('id').substr(4) }

    });