0

我有一个页面,只要用户出错,它就会使用 jQuery 播放声音。

这是我的html的一部分:

<embed id="beepCache" src="sound/beep.wav" autostart="false" type ="audio/x-wav" width="0" height="0" hidden="hidden" /><!-- Just for caching! -->

我只是用它来本地缓存文件,所以它会立即播放。这是我播放声音的 jQuery 函数。它只是在 DOM 中添加和删除 embed 元素。

function playSound() {
            $('body').append('<embed id="beep" width="0" height="0"  type ="audio/x-wav" src="sound/beep.wav" autostart="true" hidden="hidden">');
            //wait 1 sec than remove the embed element
            setTimeout(function() {
                $('#beep').remove();
            }, 1000);
        }

所以这段代码在 IE、FF 和 Opera 中工作,但它曾经在 Chrome 中工作。当它起作用时,我注意到对 beep.wav 的所有 GET 请求都是缓存命中。

但是现在我得到了状态(已取消)。我认为 Chrome 太聪明了,它注意到 embed 元素将被删除,所以它取消了对资源的请求,但事实并非如此,因为即使是我用于缓存并且永远不会删除的 embed 元素也会得到状态(已取消) - 这发生在页面加载时。

任何想法,将不胜感激。

4

1 回答 1

0

我想到了。对不起。是我在家里安装的vlc插件。由于我在我的家庭和工作电脑上使用相同的谷歌帐户,它也安装在我的工作电脑上。

所以我禁用了它,它再次成为一种魅力:P

于 2013-07-24T16:42:04.070 回答