1

为了将延迟添加到 jquery 链接,我想将 Ajax Gravity Form 的内联 jQuery 脚本移动到页脚。

我该怎么做?

在此处输入图像描述

4

2 回答 2

3

这对我有用。我希望这也对你有用。

// Force Gravity Forms to init scripts in the footer and ensure that the DOM is loaded before scripts are executed
add_filter( 'gform_init_scripts_footer', '__return_true' );
add_filter( 'gform_cdata_open', 'wrap_gform_cdata_open', 1 );
function wrap_gform_cdata_open( $content = ” ) {
    if ( ( defined('DOING_AJAX') && DOING_AJAX ) || isset( $_POST['gform_ajax'] ) ) {
        return $content;
    }
    $content = 'document.addEventListener( "DOMContentLoaded", function() { ';
    return $content;
}
add_filter( 'gform_cdata_close', 'wrap_gform_cdata_close', 99 );
function wrap_gform_cdata_close( $content = '' ) {
    if ( ( defined('DOING_AJAX') && DOING_AJAX ) || isset( $_POST['gform_ajax'] ) ) {
        return $content;
    }
    $content = ' }, false );';
    return $content;
}
于 2020-06-30T12:46:24.073 回答
0

这可能有效:

/**
 * Force GFORM Scripts inline next to Form Output
 *
 * force the script tags inline next to the form. This allows
 * us to regex them out each time the form is rendered.
 * 
 * see strip_inline_gform_scripts() function below
 * which implements the required regex
 */
add_filter("gform_init_scripts_footer", "__return_false");

/**
 * Strip out GForm Script tags
 *
 * note: this diables post and pre render hooks which are triggered
 * when the form renders so if you need these then it's important
 * to manually re-add them in your compiled JS source code
 */

add_filter("gform_get_form_filter", function( $form_string, $form ) {
  return $form_string = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $form_string);
}, 10, 2);
于 2020-04-02T02:31:07.507 回答