我将脱机导出用于高图表,并包含以下脚本:

 <script src="Scripts/highcharts/5.0.14/highcharts.js"></script>
 <script src="Scripts/highcharts/5.0.14/highcharts-more.js"></script>
 <script src="Scripts/highcharts/5.0.14/modules/exporting.js"></script>
 <script src="Scripts/highcharts/5.0.14/modules/offline-exporting.js"></script>
 <script src="Scripts/highcharts/5.0.14/modules/export-data.js"></script>


我的Java脚本中还包含以下选项。

Highcharts.getSVG = function (charts, options, callback) {
        var svgArr = [],
            top = 0,
            width = 0,
            addSVG = function (svgres) {
                // Grab width/height from exported chart
                var svgWidth = +svgres.match(
                    /^<svg[^>]*width\s*=\s*\"?(\d+)\"?[^>]*>/
                )[1],
                    svgHeight = +svgres.match(
                        /^<svg[^>]*height\s*=\s*\"?(\d+)\"?[^>]*>/
                    )[1],
                    // Offset the position of this chart in the final SVG
                    svg = svgres.replace('<svg', '<g transform="translate(0,' + top + ')" ');
                svg = svg.replace('</svg>', '</g>');
                top += svgHeight;
                width = Math.max(width, svgWidth);
                svgArr.push(svg);
            },
            exportChart = function (i) {
                if (i === charts.length) {
                    return callback('<svg height="' + top + '" width="' + width +
                        '" version="1.1" xmlns="http://www.w3.org/2000/svg">' + svgArr.join('') + '</svg>');
                }
                charts[i].getSVGForLocalExport(options, {}, function () {
                    console.log("Failed to get SVG");
                }, function (svg) {
                    addSVG(svg);
                    return exportChart(i + 1); // Export next only when this SVG is received
                });
            };
        exportChart(0);
    };

    /**
     * Create a global exportCharts method that takes an array of charts as an argument,
     * and exporting options as the second argument
     */
    Highcharts.exportCharts = function (charts, options) {
        options = Highcharts.merge(Highcharts.getOptions().exporting, options);

        // Get SVG asynchronously and then download the resulting SVG
        Highcharts.getSVG(charts, options, function (svg) {
            Highcharts.downloadSVGLocal(svg, options, function () {
                console.log("Failed to export on client side");
            });
        });
    };

    // Set global default options for all charts
    Highcharts.setOptions({
        exporting: {
            fallbackToExportServer: false // Ensure the export happens on the client side or not at all
        }
    });


现在,我已将代码部署到生产环境中,当我单击download png时,在控制台上出现错误,


  加载脚本https://code.highcharts.com/5.0.14/lib/rgbcolor.js时出错


我不确定在本地目录中包含所有内容时为什么要尝试从highchart cdn获取脚本。

最佳答案

我认为您应该将选项libURL设置为其他库所在的本地路径。

https://api.highcharts.com/highcharts/exporting.libURL?_ga=2.13049847.1116742286.1556551485-573722723.1548845412

关于javascript - Highchart脱机导出尝试从联机CDN加载库并输出错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51184252/

10-11 12:34