2014-03-03 136 views
0

我想在我的自定义WordPress主题内使用AudioPlayer.js jquery插件。在Wordpress中尝试使用它之前,它在我的基本html/css测试网站中工作得很完美,没有任何错误。Jquery“Uncaught IndexSizeError:无法执行”错误

现在,这是我的WP主题中,寻找在Chrome浏览器开发工具时,我得到这个错误:

Uncaught IndexSizeError: Failed to execute 'end' on 'TimeRanges': 
    The index provided (0) is not less than the object's length (0). 

而且它不断地试图运行,Chrome会计算它多少次尝试:我输入了22,000次,并计数。它还表示这是因为Audioplayer.js文件中的第103行。 103线是:

barLoaded.width((theAudio.buffered.end(0)/theAudio.duration) * 100 + '%'); 

我知道,可能不会没有整个插件多大的意义,所以我上传的全部插件here on Pastebin。我知道在提问时链接到外部网站并不理想,但我不想在此发布太多的代码。下面是错误的Chrome浏览器开发工具的截图:

enter image description here

我确信,jQuery是被称为在头部,该插件使用此代码在页脚调用之前:

<script>jQuery(function() { jQuery('audio').audioPlayer(); });</script> 

任何人都可以给我一些想法,可能会导致这种情况?谢谢!

+1

audioplayer.js代码在尝试获取集合的第一项(0)之前应该确实检查Audio.buffered.length> = 1。但奇怪的是,它不停止抛出这个错误。如果您将音频放在简单的

+0

谢谢你的回复,蒂姆!音频源的路径不起作用。 –

回答

0

嗯,我当然不明白它抛出的错误,但是感谢@TimHayes的回复,我只尝试了一个简单的HTML5音频标签,但它仍然没有播放。然后我想使用直接的,明确的URL路径到资产。 (请记住这是一个WordPress主题)现在一切正常!奇。如果有其他人碰巧出现并且知道为什么会出现这种错误,我很乐意听到它!

+1

我在上面的评论中想到了很多。如果音频源无效,则无法缓冲内容,并且audio.buffered.length将保持为0. audioplayer.js代码未对此进行说明。所以当它检查buffered.end(0)时会抛出一个错误。您应该将此错误提交给开发人员。有关TimeRanges的详细信息,请参阅html5规范:http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#timeranges – TimHayes

+0

好的,有道理。再次感谢蒂姆! –

相关问题