所以,我有一个网站,它使用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();
答案 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) }
});