#javascript #google-chrome-extension
#javascript #google-chrome-расширение
Вопрос:
Я пытаюсь открыть пример диаграммы из Chart.js
документации в расширении Google Chrome.
Однако я сталкиваюсь с проблемой, line 2
из-за которой я получаю Uncaught ReferenceError: Chart is not defined
ошибку.
Какие изменения мне нужно внести, чтобы устранить эту проблему?
Имейте в виду, что у меня есть javascript во внешнем файле, а не локализованный во html
файле, как в документации. Это должно быть сделано из-за механизма безопасности Chrome
HTML
<html>
<head>
<link rel="stylesheet" href="styles.css">
</head>
<body class="background-opening-page">
<div>
<div>
<div>text</div>
</div>
</div>
<div>
<div id="line-of-text">a line of text</div>
<script src="popup.js"></script>
</div>
<div>
<canvas id="myChart" width="400" height="400"></canvas>
<script src="draw-chart.js"></script>
</div>
</body>
</html>
Javascript
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
Комментарии:
1. Как выполняется код JavaScript?
Chart.js
возможно, не былоinitialized
2. > Как выполняется код JavaScript? Что вы точно имеете в виду под этим, лол. Я довольно новичок в javascript, поэтому я точно не знаю, как ответить на ваш вопрос.
3. Это файл js
draw-chart.js
? Также я не вижу, гдеChart.js
импортируется в этот HTML-файл4. Да, файл js является
draw-chart.js
. Я должен был быть более кратким с этим mb. Я также не импортировал модуль: Я упс. Должен ли я просто добавитьimport('./node_modules/chart.js');
в верхней части файла javascript?5. Добавьте это в свой
<head></head>
тег —<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
Ответ №1:
Загрузите chart.js
файлы локально и добавьте в <head></head>
теги, подобные этому —
<script src="path/to/chartjs/dist/Chart.js"></script>
Также, пожалуйста, переместите это <script src="draw-chart.js"></script>
в <head></head>
тег после Chart.js
тега. Вы не должны добавлять <script>
теги внутри <body>
тега.