Javascript 未捕获类型错误:$player.jPlayer不是函数
我正在帮助一位朋友更新WordPress安装以解决最近的安全问题,在他的网站上处理音频的JPlayer插件停止工作 Chrome的控制台在标题中显示了错误,但我对JS不太了解,无法正确调试它。我非常确定插件本身与JQuery一起正确加载到了页面标题中。我对照插件的说明进行了检查,结果一切正常 我还更新了插件本身,以确保它不是一些兼容性问题 我没有建立他的网站,也不熟悉这个特定的插件,我只是想看看这是否是一个简单的修复或如果我必须恢复备份 我想这与他的网页设计师(他们闹翻了)是如何在文件中实现它有关,但这就是我所了解的Javascript 未捕获类型错误:$player.jPlayer不是函数,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我正在帮助一位朋友更新WordPress安装以解决最近的安全问题,在他的网站上处理音频的JPlayer插件停止工作 Chrome的控制台在标题中显示了错误,但我对JS不太了解,无法正确调试它。我非常确定插件本身与JQuery一起正确加载到了页面标题中。我对照插件的说明进行了检查,结果一切正常 我还更新了插件本身,以确保它不是一些兼容性问题 我没有建立他的网站,也不熟悉这个特定的插件,我只是想看看这是否是一个简单的修复或如果我必须恢复备份 我想这与他的网页设计师(他们闹翻了)是如何在文件中实现它有
帮助?确实压缩并删除了main.js的某些部分,看起来像
var $player = false,
$(document).ready(function() {
if(!$player) {
$("#jPlayer").jPlayer({
ready: function() {
$player = $(this); // IT'S BEING SET HERE !
PlaylistPlay(playlistObject,trackIndex);
}
});
} else {
PlaylistPlay(playlistObject,trackIndex);
}
});
function PlaylistPlay(lePID,trackIndex) {
playTrack(trackIndex);
}
function playTrack(index) {
$player.jPlayer("setMedia", {mp3: trackObject.mp3,oga: trackObject.oga}).jPlayer("play");
}
如果你仔细观察,你会发现有一种明显的可能性,playlplay
可以在不将$player
设置为$(此)
的情况下调用,这实际上几乎是确定的,这意味着$player
是false
,并且
false.jPlayer(...
实际上不起作用,请参见控制台输出,确认变量为false
插件未正确初始化。在
$(document).ready()
上,它正在尝试初始化插件并报告闪存错误
以下是代码的重要部分:
$("#jPlayer").jPlayer({
...
error: function(event) {
var out = "<p id=\"noSolution\">Sorry, you need an HTML5 capable browser or flash to be able to listen to music on this website.<br /> Reason: ";
switch(event.jPlayer.error.type) {
case $.jPlayer.error.FLASH:
out += "A problem with the Flash insertion on the page.";
break;
...
}
}
...
});
该函数正在引发异常,因为this.\u getMovie()
没有名为fl\u volume
的属性
您实际看到的错误是此故障的副作用。您可以尝试删除上面语句中的行:
this.\u flashError(b)
,看看是否可以安全地忽略错误。我在Chrome中没有看到错误,只是一个警告。我在所有浏览器中都尝试过了所有操作,我一生都无法获得flash错误,只有当HTML5视频不可用时,才会返回flash。我甚至试着模仿旧的IE,但没有任何效果。如果我访问该站点,并单击顶部的播放按钮或任何相册,我会得到一个未定义函数
错误,仅此而已?你是如何在什么浏览器中出错的?Win 7/Chrome 42。我想这可能也和我工作时的防火墙有关。。。另外,我只是在文档中放置了一个断点。ready
并能够通过在那里进行操作来达到它。我真的不知道OP的问题是什么,没有太多关于错误的描述,所以可能是任何错误,我只是想知道为什么我找不到Flash错误。奇怪的是,当我完全禁用Flash时,音乐实际上开始播放,因为if
contidion似乎走了另一条路,而且$player
设置正确,所以我看到的错误也可能与Flash有关?非常感谢各位的指点。不幸的是,我还没有弄清楚这里到底出了什么问题。如果闪存是它的根源,那么有没有一种方法可以完全禁用闪存回退?实际上,这似乎不起作用…只是完全删除了闪存选项,它不会改变任何东西。仍然没有音频和相同的控制台输出。
_flash_volume: function(a) {
try {
this._getMovie().fl_volume(a)
} catch (b) {
this._flashError(b)
}
}