Highcharts Error #16: графики не отображаются на одной странице
у меня есть веб-сайт, на одной странице Я успешно добавил highchart.
Теперь я скопировал точно такой же код на ту же страницу, но другую страницу asp, но первая диаграмма исчезла, а вторая диаграмма не отображается.
это дает мне ошибку:
Uncaught Highcharts error #16: www.highcharts.com/errors/16 highcharts.js:16
Uncaught SyntaxError: Unexpected token ILLEGAL Dashboard.aspx:657
Uncaught TypeError: Object [object Object] has no method 'highcharts' Dashboard.aspx:405
Uncaught TypeError: Object [object Object] has no method 'draggable'
любые идеи, почему я получаю это.
Итак, мой код для новой диаграммы, которую я хочу:
<script type="text/javascript"
$(function () {
$('#container').highcharts({
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>
график работы имеет следующие код:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="http://code.highcharts.com/highcharts.js"></script>
<script type="text/javascript">
$(function() {
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Chart'
},
xAxis: {
categories: array1
},
yAxis: {
title: {
text: 'aWH'
}
},
tooltip: {
pointFormat: "Value: {point.y:.1f} mm"
},
series: [{
name: '2011-2012',
color: '#0000FF',
data: array
},
{
name: '2012-2013',
color: '#92D050',
data: array3
},
{
color: '#FF0000',
name: '2013-2014',
data: array2
}]
});
});
</script>
второй график показывает.
но первый график не,
оба кода находятся на другой странице acsx!
2 ответов
если вы идете к Учитывая Ссылку На Ошибку
Highcharts Ошибка #16
Highcharts уже определены на странице
эта ошибка возникает при второй загрузке Highcharts или Highstock на той же странице, поэтому пространство имен Highcharts уже определено. Имейте в виду, что Highcharts.Конструктор диаграмм и все функции Highcharts включены в Highstock, поэтому, если вы используете диаграмму и Стокчарт в сочетании, вы только нужно загрузить highstock.файл js.
Проверьте, скопировали ли вы библиотеку скриптов для highcharts во второй раз ваш код должен содержать только один раз:
<script src="http://code.highcharts.com/highcharts.js"></script>
редактировать
вы пытаетесь показать диаграммы в том же div, что и $('#container')
здесь контейнер является идентификатором для div. Когда оба ascx визуализируются на странице, он находит тот же div с контейнером Id и визуализирует диаграмму, которая переопределяет один из них. так что
-
сделать два отдельных divs:
<div id="container1" style="min-width: 400px; height: 400px; margin: 0 auto"></div> <div id="container2" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
-
удалите скрипт (следующий) из ascx и поместите его в MasterPage.:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script type="text/javascript" src="http://code.highcharts.com/highcharts.js"></script>
-
для графика:
$('#container1').highcharts({//other code
для диаграммы два:
$('#container2').highcharts({//other code
вы можете использовать этот способ, чтобы обернуть код, который работает Highcharts.библиотека js.:
if (!window.HighchartsUniqueName) {
window.HighchartsUniqueName = true;
// .. your code which runs Highcharts.js library here ...
}
Я нашел его здесь https://stackoverflow.com/a/5154971 и это работает для меня.
таким образом, вам не нужно помещать свой скрипт в MasterPage, если вы не хочу.
обязательно используйте very уникальный name, так как это глобальная переменная.
также имейте в виду, что Highcharts.Конструктор диаграмм и все особенности Highcharts включены в Highstock, поэтому если вы работаете в графике и StockChart в сочетании, нужно только загрузить highstock.JS файл, или вы можете обернуть его в ту же сторону.