2012-07-14 13 views
5

próbuję uruchomić tego samego kodu w tym jsFiddle lokalnie ale mam błąd z FirebugHighCharts przechwycony wyjątek

uncaught exception: Highcharts error #13: www.highcharts.com/errors/13 

Dołączony skrypt fiels:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript" src="http://highcharts.com/js/testing.js"></script> 
<script type="text/javascript" src="test.js"></script> // my js file 

samo dzieje się w tym jsFiddle jako dobrze.

Ktoś wie, dlaczego tak się dzieje?

EDIT: Znalazłem przyczynę problemu. Właściwie muszę umieścić znacznik <script type="text/javascript" src="test.js"></script> po moim znaczniku <div id="container"></div>, w przeciwnym razie nieprzechwycony wyjątek będzie pokazywał nawet umieszczenie znacznika <script> w <head>. Nigdy wcześniej nie umieszczałem pliku skryptu w tagu <body> i po raz pierwszy napotkałem ten problem. Czy ktoś może mi wyjaśnić, dlaczego tak się stało?

Dzięki

+0

Wykonano w chromie, nie pojawiały się żadne błędy. – Duniyadnd

+1

Nie umieściłem '$ (document) .ready' w pliku js, to jest powód. Dzięki i tak! – sozhen

Odpowiedz

18

Oznacza to, że Highcharts jest załadowany i config jest załadowany, ale opcja renderTo jest źle, albo nie ma z tym div id na stronie. Zobacz www.highcharts.com/errors/13.

+0

Znalazłem przyczynę. Ale nadal jestem zagmatwany, zobacz moje zaktualizowane pytanie. Dzięki! – sozhen

+2

Nieważne. Nie umieściłem '$ (document) .ready' w moim pliku js i dlatego nie znalazłem znacznika' div'. My BAD ..... – sozhen

+1

Dzięki za odpowiedź, ale dodanie '$ (document) .ready' nie działa dla mnie. Nadal rzuca ten sam błąd.Czy ktoś może mi pomóc –

2

Element/div próbujesz renderować wykresu brakuje

standardowy zestaw dzienników, które chciałbym wykorzystać do rozwiązywania błędów highcharts # 13 są

 console.log("JSON: " + JSON.stringify(chartingOptions)); 
     console.log("Render to element with ID : " + chartingOptions.chart.renderTo); 
     console.log("Number of matching dom elements : " + $("#" + chartingOptions.chart.renderTo).length); 

Powinny być dodawane tylko przed wywołaniem konstruktora Highcharts

 chart = new Highcharts.Chart(chartingOptions); 

Jeśli wszystko jest dobrze powinieneś zobaczyć poprawnego identyfikatora elementu, jak i długość 1.

Troubleshooting highcharts error # 13 | Highchart & Highstock @ jsFiddle

Oto dziennika, który jest postrzegany przez demo powyżej

JSON: { "Wykres": { "renderTo": "pojemnik" ...}}
Render do elementu z ID: pojemnik
liczba pasujących elementów DOM: 1

1

Chyba wiem, dlaczego należy dodać, że po tagu div/div. Jeśli używasz strony JSP lub jakiegokolwiek innego oprogramowania po stronie serwera. Powinieneś dodać swój skrypt Highcharts po deklaracji kontenera div, aby mógł rozpoznać identyfikator twojego div, a następnie przystąpić do renderowania go. Tak jak w przykładzie poniżej:

<head> 
    <title>HighCharts :D</title> 
    <script src="http://code.highcharts.com/highcharts.js"></script> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
</head> 
<body> 
<div id="container" style="width: 600px; height: 400px; margin: 0 auto"> 
</div> 
<script type="text/javascript"> 
    var myChart = Highcharts.chart('container', { 
     chart: { 
      type: 'bar' 
     }, 
     title: { 
      text: 'Fruit Consumption' 
     }, 
     xAxis: { 
      categories: ['Apples', 'Bananas', 'Oranges'] 
     }, 
     yAxis: { 
      title: { 
       text: 'Fruit eaten' 
      } 
     }, 
     series: [{ 
      name: 'Jane', 
      data: [1, 0, 4] 
     }, { 
      name: 'John', 
      data: [5, 7, 3] 
     }] 
    }); 


</script> 
</body> 
Powiązane problemy