繁体   English   中英

PhantomJS渲染空图像

[英]PhantomJS rendering empty image

PhantomJS出现一些奇怪的错误。

我有chart.js折线图,具有修改过的线色: codepen

Chart.defaults.multicolorLine = Chart.defaults.line;
Chart.controllers.multicolorLine = Chart.controllers.line.extend({
    draw: function(ease) {
        var startIndex = 0;
        var meta = this.getMeta();
        var points = meta.data || [];
        var colors = this.getDataset().colors;
        var area = this.chart.chartArea;
        var originalDatasets = meta.dataset._children.filter(function(data) {
            return !isNaN(data._view.y);
        });

    function _setColor(newColor, meta) {
        meta.dataset._view.borderColor = newColor;
    }

    if (!colors) {
        Chart.controllers.line.prototype.draw.call(this, ease);
        return;
    }

    for (var i = 2; i <= colors.length; i++) {
        if (colors[i-1] !== colors[i]) {
            _setColor(colors[i-1], meta);
            meta.dataset._children = originalDatasets.slice(startIndex, i);
            meta.dataset.draw();
            startIndex = i - 1;
        }
    }

    meta.dataset._children = originalDatasets.slice(startIndex);
    meta.dataset.draw();
    meta.dataset._children = originalDatasets;

    points.forEach(function(point) {
        point.draw(area);
    });
  }
});

在普通浏览器中看起来很正常

但是,当我尝试使用PhantomJS在PHP服务器(Yii2)上呈现它时:

var webPage = require('webpage');

var page          = webPage.create();
page.viewportSize = {width: 1920, height: 1080};

var url = '%url%';

page.open(url, function (status) {
    if (status === 'success') {
        window.setTimeout(function () {

            page.render('%path%', {format: 'jpeg', quality: '90'});
            phantom.exit();

        }, 3000);
    }
});

它返回空图像

有任何想法吗?

解决方案:将PhantomJS替换为puppeteer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM