2016-02-18 1 views
0

Я использую следующий код, который дает желаемое форматирование Highchart, которое я хочу в Safari. Однако, когда я попробовал это в Google Chrome, я получаю сообщение об ошибке «Uncaught TypeError: this.value.slice не является функцией», даже если я ничего не меняю.Форматы высоких диаграмм по-разному в Safari vs Chrome

В разделе xAxis я изменяю строку, считываемую из файла csv, с чего-то вроде этого '02/15/2016 10:31:46 'to '10: 31: 46'.

Однако, когда я удаляю весь раздел xAxis в приведенном ниже коде и запускаю его в Chrome, он автоматически форматирует xAxis как нечто вроде «10: 31». Лично я бы предпочел формат, который создается, когда код ниже используется в Safari. Мне просто интересно, кто-нибудь знает, почему это происходит или что в Chrome, что изменяет способ работы ниже кода.

$.get(data, function(csv) { 
    $('#container').highcharts({ 
    chart: { 
     zoomType: 'x', 
     type: 'column', 
    }, 
    data: { 
     csv: csv, 
     lineDelimiter: "\n", 
    }, 
    title: { 
      text: 'CSV file data' 
     }, 
    yAxis: { 
     title: { 
      text: 'Bytes' 
     } 
    }, 
    xAxis: { 
     labels: { 
     //Only show the time (not date and time) 
     formatter: function() { 
       return this.value.slice(10,-4); 
     } 
     } 
    }, 
    plotOptions: { 
     series: { 
      marker: { 
       enabled: false 
      } 
     } 
    } 
    }); 
}); 

ответ

1

Если value не является строкой, то Chrome будет не найти .slice() - TypeError выбрасывается.

Это связано с тем, что Chrome успешно разбирает формат даты в метку времени JavaScritp.

Одним из способов может быть установка типа xAxis на 'category', потому что я предполагаю, что это то, что вы используете.

Пример: http://jsfiddle.net/vs6qpobq/

Другой способ, чтобы убедиться, что дата правильно разобран в Safari, добавив функцию шелухи в parseDate и получить информацию из временной метки.

+0

Добавление категории в раздел xAxis устраняет эту проблему, спасибо! – Catherine

Смежные вопросы