PhantomJS рендеринг пустого изображения - PullRequest
0 голосов
/ 02 июля 2019

У меня странная ошибка с 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);
    });
  }
});

Выглядит нормально вобычный браузер

Но когда я попытался отрендерить его на PHP-сервере (Yii2) с PhantomJS:

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);
    }
});

Он возвращает пустое изображение

Есть идеи?

1 Ответ

0 голосов
/ 02 июля 2019

Решение: замените PhantomJS на кукловод

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...