WordPress音频播放器导致js错误,MediaelementPlayer不是函数

时间:2017-03-02 作者:Nate M.

我在用自己的皮肤使用内置的Wordpress音频播放器,我需要将默认音量设置为100,所以我将其放入footer.php

<!--Change Wordpress Audio Player Default Volume-->
<script type="text/javascript">
jQuery(document).ready(function ($) {
    $("audio").mediaelementplayer({
        success: function (mediaElement, domObject) {
            mediaElement.setVolume(1.0);
        }
    });
});
</script>
问题是我得到了错误Uncaught TypeError: $(...).mediaelementplayer is not a function 在任何没有[音频]短代码的页面上,因为wp-mediaelement.min.jsmediaelement-and-player.min.js JS文件不会加载到没有短代码的页面上,这反过来会破坏这些页面上的其他javascript。

我的选择是什么?必须将默认卷设置为最大值。我的代码写错了吗?

1 个回复
最合适的回答,由SO网友:nibnut 整理而成

我可以想出两种可能的选择——尽管我现在无法测试这两种选择。

Option 1

从理论上讲,更干净的方法是,当您检测到mediaelementplayer插件是否已将自己加载到jQuery命名空间中时:

<!--Change Wordpress Audio Player Default Volume-->
<script type="text/javascript">
jQuery(document).ready(function ($) {
    if($.fn.mediaelementplayer) {
        $("audio").mediaelementplayer({
            success: function (mediaElement, domObject) {
                mediaElement.setVolume(1.0);
            }
        });
    }
});
</script>

Option 2

如果选项1不起作用,那么这应该;它测试当前jQuery对象以查看它是否响应mediaelementplayer调用:

<!--Change Wordpress Audio Player Default Volume-->
<script type="text/javascript">
jQuery(document).ready(function ($) {
    var audio_widgets = $("audio");
    if(audio_widgets.mediaelementplayer) {
        audio_widgets.mediaelementplayer({
            success: function (mediaElement, domObject) {
                mediaElement.setVolume(1.0);
            }
        });
    }
});
</script>
这很有帮助!

相关推荐

如何通过jQuery Datepicker搜索帖子?

我正在WordPress网站上工作,我有自己的搜索筛选页面,在那里我添加了jquery日期选择器,现在我想按日期选择器搜索帖子?Html Codescript> $(function() { jQuery( \"#datepicker-13\" ).datepicker({ dateFormat : \"yy-mm-dd\" }); $(\"#datepicker-13\").datepicker().datepick