重力形式的js错误

ste*_*307 11 wordpress gravity-forms-plugin

我们在wpengine上托管wordpress网站.在这一个网站上,我们使用重力形式但由于某种原因它停止了工作.我们得到的只是一个js错误

Uncaught ReferenceError: gformInitSpinner is not defined (index):135
(anonymous function) (index):135
o jquery.min.js:2
p.fireWith jquery.min.js:2
e.extend.ready jquery.min.js:2
c.addEventListener.B
Run Code Online (Sandbox Code Playgroud)

现在,如果我在本地机器上设置该站点,它的工作原理非常好.有人遇到过这个问题吗?任何人都知道为什么会这样?

ric*_*W8k 15

导致此问题的最常见原因是,当标题中的gravityforms.js文件应该在页眉中时,它将被包含在页脚中.

如果使用函数调用嵌入表单,则应该使用第二个函数调用来在header.php中包含脚本和样式表.

gravity_form_enqueue_scripts(form_id, ajax);
gravity_form_enqueue_scripts(4, true);
Run Code Online (Sandbox Code Playgroud)

https://docs.gravityforms.com/gravity_form_enqueue_scripts/


Sea*_*ean 5

我有完全相同的问题,并设法跟踪它到一些主题代码.

我正在使用骨骼主题,它取消注册默认的jQuery JS并使用Google CDN添加自己的主题,如:

// we don't need the Wordpress jquery as we are loading our own version
add_action('wp_enqueue_scripts', 'stnic_remove_jquery');
function stnic_remove_jquery(){
    if(!is_admin()) {
        wp_deregister_script('jquery');
    }
}


// loading modernizr and jquery, and reply script
function bones_scripts_and_styles() {
    if (!is_admin()) {
        wp_register_script( 'cdn-jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js', array(), '', false );
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它deregister是默认jquery脚本,然后添加自己的cdn-jquery脚本,这很好,除了Gravity表单脚本依赖于jquery和不依赖cdn-jquery!

因为它们无法看到默认jquery脚本,所以它们不会加载,并且它们似乎无声地失败,只是发出此JavaScript错误,因为加载了JavaScript而没有检查依赖项.

在任何情况下,我通过重新命名骨骼寄存器脚本来修复它jquery,可能不是解决此问题的最佳方法,但它可行.

或者,注释掉这两段代码也可以解决这个问题(并保留默认的Wordpress JS).

不确定其他主题是否可以做到这一点,但可能值得在您的主题中进行搜索,wp_deregister_script('jquery');或者至少切换到默认主题,看看您是否遇到了同样的问题(这就是我如何确定这一点).