将PHP对象传递给脚本会破坏wordpress中的javascript

将PHP对象传递给脚本会破坏wordpress中的javascript,javascript,php,wordpress,google-sheets,Javascript,Php,Wordpress,Google Sheets,我正在构建一个应用程序来显示和操作wordpress中的统计数据 我从google sheets获取数据,并通过wp_localize_脚本将其传递给脚本 我只是注意到这样做会破坏其他脚本中的javascript功能,尽管我不知道为什么 细节: 从工作表中获取数据: function get_stats_from_sheets() { require_once dirname(dirname(__FILE__)) . '/stat-interface/vendor/autoloa

我正在构建一个应用程序来显示和操作wordpress中的统计数据

我从google sheets获取数据,并通过wp_localize_脚本将其传递给脚本

我只是注意到这样做会破坏其他脚本中的javascript功能,尽管我不知道为什么

细节:

从工作表中获取数据:

function get_stats_from_sheets()
{
        require_once dirname(dirname(__FILE__)) . '/stat-interface/vendor/autoload.php';
        $apikey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        $spreadsheetId = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        $ranges = ["'GI'!A1:F", "'dsfdf'!A1:C", "'dfd'!A1:G", "'dsfdf'!A1:B", "'dsfdsf'!A1:D"];
        $params = ['ranges' => $ranges, 'majorDimension' => 'COLUMNS'];
        $client = new Google\Client();
        $client->setApplicationName("dsfdf");
        $client->setDeveloperKey($apikey);

        $service = new Google_Service_Sheets($client);
        $response = $service->spreadsheets_values->batchGet($spreadsheetId, $params);
        $array = (array) $response;
        $data = $array['valueRanges'];
        return $data;
}
本地化脚本和其他加载的脚本:

add_action('wp_enqueue_scripts', 'my_custom_script_load', 11);

function my_custom_script_load(){
    if (is_page(603484)):
    wp_enqueue_script('spamspan', get_stylesheet_directory_uri() . '/js/spamspan.js', array('jquery'), '0.2', true);

        wp_enqueue_style('stat', get_stylesheet_directory_uri() . '/css/stat.css');
        wp_enqueue_script('chartJs', 'https://cdn.jsdelivr.net/npm/chart.js@2.9.4/dist/Chart.min.js', '', '', true);
        wp_enqueue_script('ublcharts', get_stylesheet_directory_uri() . '/js/ublcharts.js', '', '', true);
        wp_localize_script('ublcharts', 'statsData', get_stats_from_sheets());
        wp_enqueue_script('bootstrap', 'https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js', array('jquery'), '', false);
        wp_enqueue_style('bootstrapCss', 'https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css');
        wp_enqueue_script('pdfmake', 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/pdfmake.min.js', '', true);
        wp_enqueue_script('vfs_fonts', 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.68/vfs_fonts.min.js', '', '', true);
        wp_register_script('stat-pdf', get_stylesheet_directory_uri() . '/js/stat-pdf.js', '', '', true);
        wp_localize_script('stat-pdf', 'home_url', array('url' => get_stylesheet_directory_uri(), 'home' => get_home_url()));
        wp_enqueue_script('stat-pdf');
    endif;
}
收到的错误:

spamspan.js?ver=0.2:50 
Uncaught TypeError: document.createTextNode is not a function
    at spamSpan (spamspan.js?ver=0.2:50)

_microtask.js:36 Uncaught (in promise) TypeError: document.createTextNode is not a function
    at t.exports (_microtask.js:36)
    at Object.i.m.n (es6.promise.js:13)
    at i (bootstrap:19)
    at Object.i.m.n (promise.js:4)
    at i (bootstrap:19)
    at Object.i.m.n (promise.js:1)
    at i (bootstrap:19)
    at Object.<anonymous> (index.js:29)
    at Object.i.m.n (pdfmake.min.js?ver=1:37)
    at i (bootstrap:19)
spamspan.js?ver=0.2:50
未捕获类型错误:document.createTextNode不是函数
在spamSpan(spamSpan.js?ver=0.2:50)
_microtask.js:36未捕获(承诺中)类型错误:document.createTextNode不是函数
在t.exports(_microtask.js:36)
at Object.i.m.n(es6.promise.js:13)
at i(引导:19)
at Object.i.m.n(promise.js:4)
at i(引导:19)
at Object.i.m.n(promise.js:1)
at i(引导:19)
反对。(索引js:29)
在Object.i.m.n(pdfmake.min.js?ver=1:37)
at i(引导:19)
spamspan错误对我来说并不重要,但它表明有什么东西坏了(这是我的pdf脚本无法工作的潜在原因)

禁用所有其他脚本和排队,我把范围缩小到谷歌的本地化数据

第二条错误消息出现在我试图通过pdfmake.js和数据对象生成pdf时。在这两种情况下,都会显示“document.createTextNode不是函数”

我在其他页面上也使用了pdfmake.js,在那里它可以正常工作,所以我使用了工作代码pdfmake脚本,并将其精简到最低限度,但无论发生什么,我都会收到上面的错误消息


有人能告诉我为什么会发生这种情况以及如何避免吗?

问题是我写的一段糟糕的Javascript代码

     let mPoint = (document.createTextNode = point);
我仍然觉得有趣的是,控制台错误将我带到脚本中错误行之外的任何地方

修复此问题后,不再出现错误