【问题标题】:Uncaught Error: Function already initialized未捕获的错误:函数已初始化
【发布时间】:2017-07-20 18:59:23
【问题描述】:

我正在使用此入队功能将 FancyBox v3 包含到我的 Wordpress 插件中:

function fancyBox_enqueue_scripts() {

    wp_enqueue_script( 'fancybox', 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.20/jquery.fancybox.js', array('jquery'), '3.1.20', true );
    wp_enqueue_script( 'lightbox', plugin_dir_url( __FILE__ ) . 'js/lightbox.js', array( 'fancybox' ), '1.0', true );
    wp_enqueue_style( 'fancyBox-css', 'https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.1.20/jquery.fancybox.min.css', array(), '3.1.20', 'all');

}
add_action('wp_enqueue_scripts', 'fancyBox_enqueue_scripts');

当我加载我的页面时,我收到一条错误消息:

Uncaught Error: fancyBox already initialized
    at Function.error (jquery.js:2)
    at jquery.fancybox.js:26
    at jquery.fancybox.js:2969
error @ jquery.js:2
(anonymous) @ jquery.fancybox.js:26
(anonymous) @ jquery.fancybox.js:2969

FancyBox 脚本在引发错误的前几行中检查了初始化,但我没有在其他任何地方对其进行初始化。有人知道会发生什么吗?

【问题讨论】:

    标签: fancybox-3


    【解决方案1】:

    这意味着您或您正在使用的某些插件已包含fancyBox,请检查输出以查看确切位置。

    如果你愿意,你可以重写这个异常的处理方式,例如:

    jQuery.error = console.error;
    

    【讨论】:

    • 如果我重写异常的处理方式,它会允许它运行吗?如果是这样,我会将代码放在哪里?
    • 运行jQuery.fancybox.version,它会返回“2.1.5”,所以,肯定有毛刺:)
    • 顺便说一句,我找到了,就在这里-blue-elan.com/wp-content/themes/ken/js/min/theme-scripts-ck.js
    • 如果我的主题中启动了 fancyBox,我需要手动包含它吗?
    • 最好从主题脚本中删除旧版本的 fancyBox。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 2016-11-17
    • 1970-01-01
    相关资源
    最近更新 更多