d3 svg рисование прямоугольной гистограммы не работает в IE11 - PullRequest
1 голос
/ 12 марта 2019

Я закончу динамическую гистограмму, используя d3, она отлично работает в Google Chrome.

Однако в IE11 это не работает.

вот мой код

Проблемы:

  1. работает только при рисовании фоновой таблицы, но гистограммы не работают. Вот актуальная ситуация в IE Мой код запускается в IE

    Вы можете видеть, что первая часть, рисование фона, отлично работает в IE, однако блок-схема была пропущена и работала без ошибок.

  2. Я использую svg.polygon, чтобы нарисовать звезду, и я делю код рисования звезд на две части: первую часть, которую я рисую внутри таблицы (над гистограммой), вторую часть, которую я рисую вне таблицы, использовали для быть легендой.

Звезда в легенде может печататься как обычно, но все звезды в таблице были пропущены, и IE выдает код ошибки:

SVG4602: SVG Point list has incorrect format and could not be completely parsed.

1 Ответ

2 голосов
/ 12 марта 2019

Я решил свой вопрос.

Проблема вызвана кодом

linear((new Date(d.collect_date) - starttime)/cal_hour+16)

В IE невозможно запустить код new Date(d.collect_date) из-за какой-то установки даты (наверное,) Так что в этом случае, линейный (...) этот код не будет ничего возвращать, он, наконец, не распечатывает гистограмму.

Итак, я нашел способ изменить способ получения даты, иесли он напечатает линейные символы, и звездочки в таблице - это та же проблема.

Поэтому я изменяю метод get x location на:

var temp_x = d.start.split(" ");
            var temp_y = temp_x[0].split("-");
            var temp_z = temp_x[1].split(":");
                return linear((new Date(new Date(temp_y[0],(temp_y[1]-1),temp_y[2],temp_z[0],temp_z[1],temp_z[2])) - starttime)/cal_hour+16);

Это работает как для Chrome, так и для IE * 1014.*

...