2012-07-14 49 views
5

Tôi cố gắng để chạy cùng mã trong jsFiddle này tại địa phương nhưng tôi đã nhận lỗi từ firebugHighCharts ngoại lệ uncaught

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

Các kịch bản bao gồm 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 

điều tương tự sẽ xảy ra cho jsFiddle này như tốt.

Bất kỳ ai biết tại sao điều này xảy ra?

EDIT: Tôi đã tìm thấy lý do cho sự cố. Trên thực tế, tôi phải đặt thẻ <script type="text/javascript" src="test.js"></script> sau thẻ <div id="container"></div> của mình, nếu không, ngoại lệ không bắt buộc sẽ hiển thị ngay cả khi tôi đặt thẻ <script> vào <head>. Tôi chưa bao giờ đặt tệp kịch bản trong thẻ <body> trước đây và đây là lần đầu tiên tôi gặp sự cố này. Ai đó có thể giải thích cho tôi tại sao điều đó xảy ra?

Cảm ơn

+0

Chạy nó trong chrome, không có lỗi xuất hiện. – Duniyadnd

+1

Tôi không đặt '$ (tài liệu) .ready' trong tệp js, đó là lý do. Dù sao cũng cảm ơn bạn! – sozhen

Trả lời

18

Điều này có nghĩa rằng Highcharts được nạp và cấu hình được nạp, nhưng tùy chọn renderTo là sai, hoặc không có div với id đó trong trang. Xem www.highcharts.com/errors/13.

+0

Tôi đã tìm ra lý do. Nhưng có một điều tôi vẫn còn bối rối, vui lòng xem câu hỏi được cập nhật của tôi. Cảm ơn! – sozhen

+2

Đừng bận tâm. Tôi đã không đặt '$ (document) .ready' vào tệp js của tôi và đó là lý do tại sao nó không tìm thấy thẻ' div'. BAD của tôi ..... – sozhen

+1

Cảm ơn bạn đã trả lời nhưng thêm '$ (tài liệu) .ready' không hoạt động cho tôi. Vẫn ném cùng một lỗi.Bất cứ ai có thể xin giúp đỡ –

2

Yếu tố/div bạn đang cố gắng để làm cho biểu đồ để thiếu

Một bộ tiêu chuẩn của các bản ghi mà tôi sẽ sử dụng để khắc phục sự cố highcharts lỗi # 13 là

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

Những nên được bổ sung chỉ trước khi gọi các nhà xây dựng Highcharts

 chart = new Highcharts.Chart(chartingOptions); 

Nếu tất cả là tốt bạn sẽ thấy ID yếu tố chính xác, và chiều dài như 1.

Troubleshooting highcharts error # 13 | Highchart & Highstock @ jsFiddle

Đây là nhật ký được nhìn thấy cho bản demo trên

JSON: { "biểu đồ": { "renderTo": "container" ...}}
Render để yếu tố có ID: vùng chứa
Số phần tử kết hợp phù hợp: 1

1

Tôi nghĩ rằng tôi biết lý do bạn nên thêm thẻ đó sau div/div. Nếu bạn đang sử dụng JSP hoặc bất kỳ stuf phía máy chủ nào khác. Bạn nên thêm tập lệnh Highcharts sau khai báo vùng chứa div để nó có thể nhận dạng id div của bạn và sau đó tiếp tục hiển thị nó. Giống như tôi đã làm trong ví dụ dưới đây:

<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>