Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:$player.jPlayer不是函数_Javascript_Jquery_Wordpress - Fatal编程技术网

Javascript 未捕获类型错误:$player.jPlayer不是函数

Javascript 未捕获类型错误:$player.jPlayer不是函数,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我正在帮助一位朋友更新WordPress安装以解决最近的安全问题,在他的网站上处理音频的JPlayer插件停止工作 Chrome的控制台在标题中显示了错误,但我对JS不太了解,无法正确调试它。我非常确定插件本身与JQuery一起正确加载到了页面标题中。我对照插件的说明进行了检查,结果一切正常 我还更新了插件本身,以确保它不是一些兼容性问题 我没有建立他的网站,也不熟悉这个特定的插件,我只是想看看这是否是一个简单的修复或如果我必须恢复备份 我想这与他的网页设计师(他们闹翻了)是如何在文件中实现它有

我正在帮助一位朋友更新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)
    }
}