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/
我有完全相同的问题,并设法跟踪它到一些主题代码.
我正在使用骨骼主题,它取消注册默认的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');或者至少切换到默认主题,看看您是否遇到了同样的问题(这就是我如何确定这一点).
| 归档时间: |
|
| 查看次数: |
22899 次 |
| 最近记录: |