如何满足审查时,javascript变量是使用wp_localize_script()创建的



我使用Bitbucket并配置了审查器来分析上传时的代码。它会抱怨变量没有被声明,这会导致代码分级失败。

变量txtVars似乎从未被声明过。如果这是一个全局变量,考虑添加/** global: txtVars */注释。

这对我来说是有意义的,因为我在jQuery中使用变量而没有以任何方式声明它,除了在我的WordPress functions.php文件中:

txtVars是通过以下PHP引入的:

wp_enqueue_script( 'my-script', 
                   MY_URL . 'assets/js/public.js', 
                   array('jquery', 'heartbeat'), 
                   MY_VERSION, 
                   true 
);
$vars = array(
        'confirm_submit'       => __( 'Submit', 'textdomain' ),
        'confirm_cancel'       => __( 'Cancel', 'textdomain' )
    );
wp_localize_script( 'my-script', 'txtVars', $vars );
这允许我在jQuery脚本中使用txtVars:

confirm(txtVars.confirm_submit);

我试过在jQuery中声明txtVars的几种不同方式,但它没有帮助,它产生一个错误,或txtVars最终为空。

是否有一种方法来声明这个变量在jQuery,以满足代码检查器,期望变量被声明?

我相信错误消息或多或少地告诉您需要发生什么,但有时细节(例如在文件中的位置)可能难以捉摸。

为了解决这个问题,在脚本文件的顶部,甚至在jQuery之前,添加以下注释:
/** global: txtVars */

最新更新