重力形式的js错误

时间:2014-05-21 14:36:29

标签: 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

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

6 个答案:

答案 0 :(得分:13)

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

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

gravity_form_enqueue_scripts(form_id, ajax);
gravity_form_enqueue_scripts(4, true);

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

答案 1 :(得分:5)

我遇到了完全相同的问题,并设法将其跟踪到一些主题代码。

我正在使用bones theme,它取消注册默认的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 );
    }
}

正如您所看到的那样,deregister是默认的jquery脚本,然后添加了自己的cdn-jquery脚本,这很好,除了重力表单脚本依赖于jquery而不是cdn-jquery

因为他们无法看到默认的jquery脚本,所以他们无法加载,看起来他们会无声地失败,只是发出此JavaScript错误,因为加载了JavaScript而没有检查依赖项

无论如何,我通过将骨骼寄存器脚本重新命名为jquery来修复它,可能不是解决此问题的最佳方法,但它可以正常工作。

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

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

答案 2 :(得分:2)

好的,我解决了这个问题。由于某种原因,文件form_display.php由于某种原因不是最新的。所以我只是将一个文件推送到服务器并修复它。

答案 3 :(得分:1)

您还可以手动将GF的必要脚本添加到header.php(无需执行任何操作即可注册/注销jQuery!)。示例:

{{1}}

答案 4 :(得分:0)

我刚遇到这个问题,在我的情况下,它是由CloudFlare RocketLoader™引起的。 我禁用它后,表单加载没有问题。

答案 5 :(得分:0)

将重力窗体的脚本移动到页脚

add_filter("gform_init_scripts_footer", "init_scripts");
function init_scripts() {
    return true;
}