管理员端和公共端的“文档加载”是否不同?

时间:2020-12-12 作者:philolegein

我正在编写一个插件来支持谷歌图形。它在公共端工作得很好,但在管理端间歇性地呈现出奇怪的效果,并且间歇性地抛出错误,这让我觉得JS运行得太快了。(例如,TypeError: null is not an object (evaluating \'document.getElementById(colControlId).appendChild\'), 但当我检查页面时,该元素绝对存在。

驱动一切的函数作为回调注册到Google库:

// Load the Visualization API and the corechart package.
google.charts.load(\'current\', {\'packages\':[\'corechart\', \'controls\']});

// Set a callback to run when the Google Visualization API is loaded.
google.charts.setOnLoadCallback(initializeData);

// Query a CSV for the data
function initializeData() {
        let graphs = document.getElementsByClassName("cwraggbp_chart");
TheGoogle docs 说:“我不知道。”;当包裹[由google.charts.load] 加载完成后,将不带参数调用此回调函数。加载程序还将在调用回调之前等待文档完成加载"E;

但是,如果DOM完全加载,我看不出我怎么会间歇性地出现这个错误,我也不知道是什么;“已加载文档”;方法因此,由于这在公共方面可以完美地工作,但在管理方面却不行,我想知道是否。。。有些事情是不同的。

我正在加载脚本:

    public function enqueue_scripts() {

            wp_enqueue_script( $this->plugin_name . \'-public\',
                plugin_dir_url( __FILE__ )
                    . \'js/cwra-google-graph-block-public.js\', // this is where the JS above is
                array( $this->plugin_name . \'googlecharts\', \'jquery\' ),
                $this->date_version(
                    \'js/cwra-google-graph-block-public.js\'), false );
            wp_localize_script( $this->plugin_name . \'-public\',
                \'cwraggbp\',
                array(
                    \'contentdir\' => wp_upload_dir()[\'baseurl\']
                        . \'/cwraggb\'
                ));

            wp_enqueue_script( $this->plugin_name . \'googlecharts\',
                \'https://www.gstatic.com/charts/loader.js\',
                array(), $this->version, false );

    }

1 个回复
SO网友:tdj

你在钓什么public function enqueue_scripts() 继续?

您可能需要使用

add_action( \'admin_enqueue_scripts\', array( \'Your_Class\', \'enqueue_scripts\' ) );