Отказался загружать скрипт 'https://www.gstatic.com/charts/loader.js'

Я учусь писать расширение для Google. Я попробовал пример Google Charts и обнаружил ошибку:

Refused to load the script 'https://www.gstatic.com/charts/loader.js' because it violates the following Content Security Policy directive: "script-src 'self'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.

  <html>
  <head>
    <script type = "text/javascript" src = "https://www.gstatic.com/charts/loader.js"></script>
    <script type = "text/javascript">
      google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Year', 'Sales', 'Expenses'],
          ['2004',  1000,      400],
          ['2005',  1170,      460],
          ['2006',  660,       1120],
          ['2007',  1030,      540]
        ]);

        var options = {
          title: 'Company Performance',
          curveType: 'function',
          legend: { position: 'bottom' }
        };

        var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));

        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id = "curve_chart" style = "width: 900px; height: 500px"></div>
  </body>
</html>

Вот manifest.json, который я использую

{
  "name": "name",
  "description": "description",
  "icons": {
    "16": "icon.png",
    "32": "icon.png",
    "48": "icon.png",
    "128": "icon.png"
  },
  "action": {
      "default_popup": "index.html"
  },
  "background": {
      "service_worker": "./scripts/background.js",
      "type": "module"
  },
  "manifest_version": 3,
  "version": "1.0.1"
}

Я пробовал несколько решений для политики безопасности контента, но ни одно из них не работает для меня.

Заголовок Content-Security-Policy вашего документа должен включать script-src 'self' *.gstatic.com, чтобы разрешить загрузку скрипта.

Emiel Zuurbier 10.04.2023 10:18

Вы не можете загружать внешние сценарии в расширение MV3. Загрузите скрипт loader.js и включите его в свое расширение с помощью тега script. Кроме того, переместите встроенный скрипт в отдельный файл и загрузите его с тегом <script src = "yourscript.js"></script>.

Iván Nokonoko 10.04.2023 12:42
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
2
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Пожалуйста, попробуйте это.

manifest.json

{
  "name": "hoge",
  "version": "1.0",
  "manifest_version": 3,
  "action": {
    "default_popup": "index.html"
  },
  "sandbox": {
    "pages": [
      "index.html"
    ]
  },
  "content_security_policy": {
    "sandbox": "sandbox allow-scripts; script-src 'unsafe-inline' 'self' https://www.gstatic.com"
  }
}

Другие вопросы по теме